@webiny/api-workflows 0.0.0-unstable.0d717d18dd → 0.0.0-unstable.33e4fd9647
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/WorkflowsFeature.js +55 -2
- package/WorkflowsFeature.js.map +1 -1
- package/WorkflowsSchemaFactory.d.ts +1 -0
- package/WorkflowsSchemaFactory.js +4 -0
- package/WorkflowsSchemaFactory.js.map +1 -1
- package/domain/workflow/abstractions.d.ts +13 -3
- package/domain/workflow/abstractions.js +2 -2
- package/domain/workflow/abstractions.js.map +1 -1
- package/domain/workflow/workflowModel.js +2 -1
- package/domain/workflow/workflowModel.js.map +1 -1
- package/domain/workflowState/abstractions.d.ts +13 -3
- package/domain/workflowState/abstractions.js +2 -2
- package/domain/workflowState/abstractions.js.map +1 -1
- package/domain/workflowState/stateModel.js +2 -1
- package/domain/workflowState/stateModel.js.map +1 -1
- package/features/WorkflowModelProviders.d.ts +34 -0
- package/features/WorkflowModelProviders.js +40 -0
- package/features/WorkflowModelProviders.js.map +1 -0
- package/features/workflow/CreateWorkflow/CreateWorkflowRepository.d.ts +3 -3
- package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js +6 -5
- package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js.map +1 -1
- package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.d.ts +3 -3
- package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js +6 -5
- package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js.map +1 -1
- package/features/workflow/GetWorkflow/GetWorkflowRepository.d.ts +3 -3
- package/features/workflow/GetWorkflow/GetWorkflowRepository.js +6 -5
- package/features/workflow/GetWorkflow/GetWorkflowRepository.js.map +1 -1
- package/features/workflow/ListWorkflows/ListWorkflowsRepository.d.ts +3 -3
- package/features/workflow/ListWorkflows/ListWorkflowsRepository.js +7 -6
- package/features/workflow/ListWorkflows/ListWorkflowsRepository.js.map +1 -1
- package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.d.ts +3 -3
- package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js +6 -5
- package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js.map +1 -1
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.d.ts +3 -3
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js +6 -5
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js +1 -0
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js +1 -0
- package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.d.ts +3 -3
- package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js +6 -5
- package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.d.ts +3 -3
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js +6 -5
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js +1 -0
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.d.ts +3 -3
- package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js +6 -5
- package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js +1 -0
- package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.d.ts +3 -3
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js +7 -6
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js.map +1 -1
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js +1 -0
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js.map +1 -1
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.d.ts +3 -3
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js +7 -6
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js +1 -0
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js.map +1 -1
- package/package.json +13 -16
- package/WorkflowsInitializer.d.ts +0 -19
- package/WorkflowsInitializer.js +0 -97
- package/WorkflowsInitializer.js.map +0 -1
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { createIdentifier } from "@webiny/utils";
|
|
3
3
|
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
|
|
4
|
-
import { WorkflowMapper,
|
|
4
|
+
import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
|
|
5
5
|
import { WorkflowNotFoundError, WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
|
|
6
6
|
import { GetWorkflowRepository } from "./abstractions.js";
|
|
7
7
|
class GetWorkflowRepositoryImpl {
|
|
8
|
-
constructor(getEntryById,
|
|
8
|
+
constructor(getEntryById, modelProvider, mapper){
|
|
9
9
|
this.getEntryById = getEntryById;
|
|
10
|
-
this.
|
|
10
|
+
this.modelProvider = modelProvider;
|
|
11
11
|
this.mapper = mapper;
|
|
12
12
|
}
|
|
13
13
|
async execute(input) {
|
|
14
|
+
const model = await this.modelProvider.get();
|
|
14
15
|
const id = createIdentifier({
|
|
15
16
|
id: input.id,
|
|
16
17
|
version: 1
|
|
17
18
|
});
|
|
18
|
-
const entryResult = await this.getEntryById.execute(
|
|
19
|
+
const entryResult = await this.getEntryById.execute(model, id);
|
|
19
20
|
if (entryResult.isFail()) {
|
|
20
21
|
if ("Cms/Entry/NotFound" === entryResult.error.code) return Result.fail(new WorkflowNotFoundError({
|
|
21
22
|
id: input.id,
|
|
@@ -36,7 +37,7 @@ const GetWorkflowRepository_GetWorkflowRepository = GetWorkflowRepository.create
|
|
|
36
37
|
implementation: GetWorkflowRepositoryImpl,
|
|
37
38
|
dependencies: [
|
|
38
39
|
GetEntryByIdUseCase,
|
|
39
|
-
|
|
40
|
+
WorkflowModelProvider,
|
|
40
41
|
WorkflowMapper
|
|
41
42
|
]
|
|
42
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflow/GetWorkflow/GetWorkflowRepository.js","sources":["../../../../src/features/workflow/GetWorkflow/GetWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/workflow/GetWorkflow/GetWorkflowRepository.js","sources":["../../../../src/features/workflow/GetWorkflow/GetWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport {\n type IWorkflow,\n WorkflowMapper,\n WorkflowModelProvider\n} from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowNotFoundError, WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { GetWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass GetWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private modelProvider: WorkflowModelProvider.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const model = await this.modelProvider.get();\n const id = createIdentifier({\n id: input.id,\n version: 1\n });\n\n const entryResult = await this.getEntryById.execute<IWorkflow>(model, id);\n\n if (entryResult.isFail()) {\n if (entryResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n return Result.fail(new WorkflowPersistenceError(entryResult.error));\n }\n\n const entry = entryResult.value;\n\n // Check if the app matches\n if (entry.values.app !== input.app) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = this.mapper.fromCmsEntry(entry);\n return Result.ok(workflow);\n }\n}\n\nexport const GetWorkflowRepository = Repository.createImplementation({\n implementation: GetWorkflowRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, WorkflowModelProvider, WorkflowMapper]\n});\n"],"names":["GetWorkflowRepositoryImpl","getEntryById","modelProvider","mapper","input","model","id","createIdentifier","entryResult","Result","WorkflowNotFoundError","WorkflowPersistenceError","entry","workflow","GetWorkflowRepository","Repository","GetEntryByIdUseCase","WorkflowModelProvider","WorkflowMapper"],"mappings":";;;;;;AAWA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,aAA8C,EAC9CC,MAAgC,CAC1C;aAHUF,YAAY,GAAZA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAMC,KAAKC,iBAAiB;YACxB,IAAIH,MAAM,EAAE;YACZ,SAAS;QACb;QAEA,MAAMI,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAYH,OAAOC;QAEtE,IAAIE,YAAY,MAAM,IAAI;YACtB,IAAIA,AAA2B,yBAA3BA,YAAY,KAAK,CAAC,IAAI,EACtB,OAAOC,OAAO,IAAI,CACd,IAAIC,sBAAsB;gBACtB,IAAIN,MAAM,EAAE;gBACZ,KAAKA,MAAM,GAAG;YAClB;YAIR,OAAOK,OAAO,IAAI,CAAC,IAAIE,yBAAyBH,YAAY,KAAK;QACrE;QAEA,MAAMI,QAAQJ,YAAY,KAAK;QAG/B,IAAII,MAAM,MAAM,CAAC,GAAG,KAAKR,MAAM,GAAG,EAC9B,OAAOK,OAAO,IAAI,CACd,IAAIC,sBAAsB;YACtB,IAAIN,MAAM,EAAE;YACZ,KAAKA,MAAM,GAAG;QAClB;QAIR,MAAMS,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,CAACD;QAC1C,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAMC,8CAAwBC,sBAAAA,oBAA+B,CAAC;IACjE,gBAAgBf;IAChB,cAAc;QAACgB;QAAqBC;QAAuBC;KAAe;AAC9E"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { WorkflowMapper,
|
|
1
|
+
import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
|
|
2
2
|
import { ListWorkflowsRepository as Repository } from "./abstractions.js";
|
|
3
3
|
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
4
4
|
import { CmsWhereMapper } from "@webiny/api-headless-cms";
|
|
5
5
|
declare class ListWorkflowsRepositoryImpl implements Repository.Interface {
|
|
6
6
|
private listLatestEntries;
|
|
7
|
-
private
|
|
7
|
+
private modelProvider;
|
|
8
8
|
private mapper;
|
|
9
9
|
private cmsWhereMapper;
|
|
10
|
-
constructor(listLatestEntries: ListLatestEntriesUseCase.Interface,
|
|
10
|
+
constructor(listLatestEntries: ListLatestEntriesUseCase.Interface, modelProvider: WorkflowModelProvider.Interface, mapper: WorkflowMapper.Interface, cmsWhereMapper: CmsWhereMapper.Interface);
|
|
11
11
|
execute(input: Repository.Params): Repository.Return;
|
|
12
12
|
private convertListWhere;
|
|
13
13
|
private convertWorkflowId;
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { createIdentifier, parseIdentifier } from "@webiny/utils";
|
|
3
|
-
import { WorkflowMapper,
|
|
3
|
+
import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
|
|
4
4
|
import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
|
|
5
5
|
import { ListWorkflowsRepository } from "./abstractions.js";
|
|
6
6
|
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
7
7
|
import { CmsWhereMapper } from "@webiny/api-headless-cms";
|
|
8
8
|
class ListWorkflowsRepositoryImpl {
|
|
9
|
-
constructor(listLatestEntries,
|
|
9
|
+
constructor(listLatestEntries, modelProvider, mapper, cmsWhereMapper){
|
|
10
10
|
this.listLatestEntries = listLatestEntries;
|
|
11
|
-
this.
|
|
11
|
+
this.modelProvider = modelProvider;
|
|
12
12
|
this.mapper = mapper;
|
|
13
13
|
this.cmsWhereMapper = cmsWhereMapper;
|
|
14
14
|
}
|
|
15
15
|
async execute(input) {
|
|
16
|
+
const model = await this.modelProvider.get();
|
|
16
17
|
const where = this.cmsWhereMapper.map({
|
|
17
18
|
input: this.convertListWhere(input.where),
|
|
18
|
-
fields:
|
|
19
|
+
fields: model.fields
|
|
19
20
|
});
|
|
20
|
-
const listResult = await this.listLatestEntries.execute(
|
|
21
|
+
const listResult = await this.listLatestEntries.execute(model, {
|
|
21
22
|
sort: [
|
|
22
23
|
"createdOn_ASC"
|
|
23
24
|
],
|
|
@@ -52,7 +53,7 @@ const ListWorkflowsRepository_ListWorkflowsRepository = ListWorkflowsRepository.
|
|
|
52
53
|
implementation: ListWorkflowsRepositoryImpl,
|
|
53
54
|
dependencies: [
|
|
54
55
|
ListLatestEntriesUseCase,
|
|
55
|
-
|
|
56
|
+
WorkflowModelProvider,
|
|
56
57
|
WorkflowMapper,
|
|
57
58
|
CmsWhereMapper
|
|
58
59
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflow/ListWorkflows/ListWorkflowsRepository.js","sources":["../../../../src/features/workflow/ListWorkflows/ListWorkflowsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/workflow/ListWorkflows/ListWorkflowsRepository.js","sources":["../../../../src/features/workflow/ListWorkflows/ListWorkflowsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport {\n type IWorkflow,\n WorkflowMapper,\n WorkflowModelProvider\n} from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { type IListWorkflowsWhere, ListWorkflowsRepository as Repository } from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListWorkflowsRepositoryImpl implements Repository.Interface {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private modelProvider: WorkflowModelProvider.Interface,\n private mapper: WorkflowMapper.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const model = await this.modelProvider.get();\n const where = this.cmsWhereMapper.map({\n input: this.convertListWhere(input.where),\n fields: model.fields\n });\n\n const listResult = await this.listLatestEntries.execute<IWorkflow>(model, {\n sort: [\"createdOn_ASC\"],\n limit: 100,\n ...input,\n where\n });\n\n if (listResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(listResult.error));\n }\n\n const { entries, meta } = listResult.value;\n\n const items = entries.map(entry => this.mapper.fromCmsEntry(entry));\n\n return Result.ok({\n items,\n meta\n });\n }\n\n private convertListWhere(input?: IListWorkflowsWhere): IListWorkflowsWhere | undefined {\n if (!input || Object.keys(input).length === 0) {\n return undefined;\n }\n const where = structuredClone(input);\n if (where.id) {\n where.id = this.convertWorkflowId(where.id);\n }\n if (where.id_in) {\n where.id_in = where.id_in.map(id => this.convertWorkflowId(id));\n }\n return where;\n }\n\n private convertWorkflowId(input: string): string {\n const { id } = parseIdentifier(input);\n return createIdentifier({\n id,\n version: 1\n });\n }\n}\n\nexport const ListWorkflowsRepository = Repository.createImplementation({\n implementation: ListWorkflowsRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, WorkflowModelProvider, WorkflowMapper, CmsWhereMapper]\n});\n"],"names":["ListWorkflowsRepositoryImpl","listLatestEntries","modelProvider","mapper","cmsWhereMapper","input","model","where","listResult","Result","WorkflowPersistenceError","entries","meta","items","entry","Object","structuredClone","id","parseIdentifier","createIdentifier","ListWorkflowsRepository","Repository","ListLatestEntriesUseCase","WorkflowModelProvider","WorkflowMapper","CmsWhereMapper"],"mappings":";;;;;;;AAYA,MAAMA;IACF,YACYC,iBAAqD,EACrDC,aAA8C,EAC9CC,MAAgC,EAChCC,cAAwC,CAClD;aAJUH,iBAAiB,GAAjBA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAMC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAClC,OAAO,IAAI,CAAC,gBAAgB,CAACF,MAAM,KAAK;YACxC,QAAQC,MAAM,MAAM;QACxB;QAEA,MAAME,aAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAYF,OAAO;YACtE,MAAM;gBAAC;aAAgB;YACvB,OAAO;YACP,GAAGD,KAAK;YACRE;QACJ;QAEA,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,WAAW,KAAK;QAGpE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,WAAW,KAAK;QAE1C,MAAMK,QAAQF,QAAQ,GAAG,CAACG,CAAAA,QAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACA;QAE5D,OAAOL,OAAO,EAAE,CAAC;YACbI;YACAD;QACJ;IACJ;IAEQ,iBAAiBP,KAA2B,EAAmC;QACnF,IAAI,CAACA,SAASU,AAA8B,MAA9BA,OAAO,IAAI,CAACV,OAAO,MAAM,EACnC;QAEJ,MAAME,QAAQS,gBAAgBX;QAC9B,IAAIE,MAAM,EAAE,EACRA,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAACA,MAAM,EAAE;QAE9C,IAAIA,MAAM,KAAK,EACXA,MAAM,KAAK,GAAGA,MAAM,KAAK,CAAC,GAAG,CAACU,CAAAA,KAAM,IAAI,CAAC,iBAAiB,CAACA;QAE/D,OAAOV;IACX;IAEQ,kBAAkBF,KAAa,EAAU;QAC7C,MAAM,EAAEY,EAAE,EAAE,GAAGC,gBAAgBb;QAC/B,OAAOc,iBAAiB;YACpBF;YACA,SAAS;QACb;IACJ;AACJ;AAEO,MAAMG,kDAA0BC,wBAAAA,oBAA+B,CAAC;IACnE,gBAAgBrB;IAChB,cAAc;QAACsB;QAA0BC;QAAuBC;QAAgBC;KAAe;AACnG"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
2
|
-
import { WorkflowMapper,
|
|
2
|
+
import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
|
|
3
3
|
import type { IUpdateWorkflowInput } from "./abstractions.js";
|
|
4
4
|
import { UpdateWorkflowRepository as Repository } from "./abstractions.js";
|
|
5
5
|
declare class UpdateWorkflowRepositoryImpl implements Repository.Interface {
|
|
6
6
|
private updateEntry;
|
|
7
|
-
private
|
|
7
|
+
private modelProvider;
|
|
8
8
|
private mapper;
|
|
9
|
-
constructor(updateEntry: UpdateEntryUseCase.Interface,
|
|
9
|
+
constructor(updateEntry: UpdateEntryUseCase.Interface, modelProvider: WorkflowModelProvider.Interface, mapper: WorkflowMapper.Interface);
|
|
10
10
|
execute(input: IUpdateWorkflowInput): Repository.Return;
|
|
11
11
|
}
|
|
12
12
|
export declare const UpdateWorkflowRepository: typeof UpdateWorkflowRepositoryImpl & {
|
|
@@ -2,16 +2,17 @@ import { Result } from "@webiny/feature/api";
|
|
|
2
2
|
import { parseIdentifier } from "@webiny/utils/parseIdentifier.js";
|
|
3
3
|
import { createIdentifier } from "@webiny/utils";
|
|
4
4
|
import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
5
|
-
import { WorkflowMapper,
|
|
5
|
+
import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
|
|
6
6
|
import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
|
|
7
7
|
import { UpdateWorkflowRepository } from "./abstractions.js";
|
|
8
8
|
class UpdateWorkflowRepositoryImpl {
|
|
9
|
-
constructor(updateEntry,
|
|
9
|
+
constructor(updateEntry, modelProvider, mapper){
|
|
10
10
|
this.updateEntry = updateEntry;
|
|
11
|
-
this.
|
|
11
|
+
this.modelProvider = modelProvider;
|
|
12
12
|
this.mapper = mapper;
|
|
13
13
|
}
|
|
14
14
|
async execute(input) {
|
|
15
|
+
const model = await this.modelProvider.get();
|
|
15
16
|
const { id } = parseIdentifier(input.id);
|
|
16
17
|
const values = this.mapper.toCmsEntry({
|
|
17
18
|
id,
|
|
@@ -24,7 +25,7 @@ class UpdateWorkflowRepositoryImpl {
|
|
|
24
25
|
version: 1
|
|
25
26
|
});
|
|
26
27
|
try {
|
|
27
|
-
const updateResult = await this.updateEntry.execute(
|
|
28
|
+
const updateResult = await this.updateEntry.execute(model, workflowId, {
|
|
28
29
|
values
|
|
29
30
|
});
|
|
30
31
|
if (updateResult.isFail()) return Result.fail(new WorkflowPersistenceError(updateResult.error));
|
|
@@ -41,7 +42,7 @@ const UpdateWorkflowRepository_UpdateWorkflowRepository = UpdateWorkflowReposito
|
|
|
41
42
|
implementation: UpdateWorkflowRepositoryImpl,
|
|
42
43
|
dependencies: [
|
|
43
44
|
UpdateEntryUseCase,
|
|
44
|
-
|
|
45
|
+
WorkflowModelProvider,
|
|
45
46
|
WorkflowMapper
|
|
46
47
|
]
|
|
47
48
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js","sources":["../../../../src/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js","sources":["../../../../src/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport {\n type IWorkflow,\n WorkflowMapper,\n WorkflowModelProvider\n} from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport type { IUpdateWorkflowInput } from \"./abstractions.js\";\nimport { UpdateWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass UpdateWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private modelProvider: WorkflowModelProvider.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: IUpdateWorkflowInput): Repository.Return {\n const model = await this.modelProvider.get();\n const { id } = parseIdentifier(input.id);\n\n const values = this.mapper.toCmsEntry({\n id,\n app: input.app,\n name: input.name,\n steps: input.steps\n });\n\n const workflowId = createIdentifier({\n id,\n version: 1\n });\n\n try {\n const updateResult = await this.updateEntry.execute<IWorkflow>(model, workflowId, {\n values\n });\n\n if (updateResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(updateResult.error));\n }\n\n return Result.ok({\n ...values,\n id\n });\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error as Error));\n }\n }\n}\n\nexport const UpdateWorkflowRepository = Repository.createImplementation({\n implementation: UpdateWorkflowRepositoryImpl,\n dependencies: [UpdateEntryUseCase, WorkflowModelProvider, WorkflowMapper]\n});\n"],"names":["UpdateWorkflowRepositoryImpl","updateEntry","modelProvider","mapper","input","model","id","parseIdentifier","values","workflowId","createIdentifier","updateResult","Result","WorkflowPersistenceError","error","UpdateWorkflowRepository","Repository","UpdateEntryUseCase","WorkflowModelProvider","WorkflowMapper"],"mappings":";;;;;;;AAaA,MAAMA;IACF,YACYC,WAAyC,EACzCC,aAA8C,EAC9CC,MAAgC,CAC1C;aAHUF,WAAW,GAAXA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAA2B,EAAqB;QAC1D,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAM,EAAEC,EAAE,EAAE,GAAGC,gBAAgBH,MAAM,EAAE;QAEvC,MAAMI,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAClCF;YACA,KAAKF,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QAEA,MAAMK,aAAaC,iBAAiB;YAChCJ;YACA,SAAS;QACb;QAEA,IAAI;YACA,MAAMK,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAYN,OAAOI,YAAY;gBAC9ED;YACJ;YAEA,IAAIG,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,aAAa,KAAK;YAGtE,OAAOC,OAAO,EAAE,CAAC;gBACb,GAAGJ,MAAM;gBACTF;YACJ;QACJ,EAAE,OAAOQ,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBhB;IAChB,cAAc;QAACiB;QAAoBC;QAAuBC;KAAe;AAC7E"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
2
|
-
import { WorkflowStateMapper,
|
|
2
|
+
import { WorkflowStateMapper, WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
|
|
3
3
|
import { CreateWorkflowStateRepository as Repository } from "./abstractions.js";
|
|
4
4
|
declare class CreateWorkflowStateRepositoryImpl implements Repository.Interface {
|
|
5
5
|
private createEntry;
|
|
6
|
-
private
|
|
6
|
+
private modelProvider;
|
|
7
7
|
private mapper;
|
|
8
|
-
constructor(createEntry: CreateEntryUseCase.Interface,
|
|
8
|
+
constructor(createEntry: CreateEntryUseCase.Interface, modelProvider: WorkflowStateModelProvider.Interface, mapper: WorkflowStateMapper.Interface);
|
|
9
9
|
execute(input: Repository.Input): Repository.Return;
|
|
10
10
|
}
|
|
11
11
|
export declare const CreateWorkflowStateRepository: typeof CreateWorkflowStateRepositoryImpl & {
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
3
|
-
import { WorkflowStateMapper,
|
|
3
|
+
import { WorkflowStateMapper, WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
|
|
4
4
|
import { WorkflowStatePersistenceError } from "../../../domain/workflowState/errors.js";
|
|
5
5
|
import { CreateWorkflowStateRepository } from "./abstractions.js";
|
|
6
6
|
class CreateWorkflowStateRepositoryImpl {
|
|
7
|
-
constructor(createEntry,
|
|
7
|
+
constructor(createEntry, modelProvider, mapper){
|
|
8
8
|
this.createEntry = createEntry;
|
|
9
|
-
this.
|
|
9
|
+
this.modelProvider = modelProvider;
|
|
10
10
|
this.mapper = mapper;
|
|
11
11
|
}
|
|
12
12
|
async execute(input) {
|
|
13
|
+
const model = await this.modelProvider.get();
|
|
13
14
|
try {
|
|
14
|
-
const createResult = await this.createEntry.execute(
|
|
15
|
+
const createResult = await this.createEntry.execute(model, {
|
|
15
16
|
values: input
|
|
16
17
|
});
|
|
17
18
|
if (createResult.isFail()) return Result.fail(new WorkflowStatePersistenceError(createResult.error));
|
|
@@ -26,7 +27,7 @@ const CreateWorkflowStateRepository_CreateWorkflowStateRepository = CreateWorkfl
|
|
|
26
27
|
implementation: CreateWorkflowStateRepositoryImpl,
|
|
27
28
|
dependencies: [
|
|
28
29
|
CreateEntryUseCase,
|
|
29
|
-
|
|
30
|
+
WorkflowStateModelProvider,
|
|
30
31
|
WorkflowStateMapper
|
|
31
32
|
]
|
|
32
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport {\n WorkflowStateMapper,\n WorkflowStateModelProvider\n} from \"~/domain/workflowState/abstractions.js\";\nimport { WorkflowStatePersistenceError } from \"~/domain/workflowState/errors.js\";\nimport { CreateWorkflowStateRepository as Repository } from \"./abstractions.js\";\n\nclass CreateWorkflowStateRepositoryImpl implements Repository.Interface {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private modelProvider: WorkflowStateModelProvider.Interface,\n private mapper: WorkflowStateMapper.Interface\n ) {}\n\n async execute(input: Repository.Input): Repository.Return {\n const model = await this.modelProvider.get();\n try {\n const createResult = await this.createEntry.execute<Repository.Input>(model, {\n values: input\n });\n\n if (createResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(createResult.error));\n }\n\n const record = this.mapper.fromCmsEntry(createResult.value);\n return Result.ok(record);\n } catch (error) {\n return Result.fail(new WorkflowStatePersistenceError(error as Error));\n }\n }\n}\n\nexport const CreateWorkflowStateRepository = Repository.createImplementation({\n implementation: CreateWorkflowStateRepositoryImpl,\n dependencies: [CreateEntryUseCase, WorkflowStateModelProvider, WorkflowStateMapper]\n});\n"],"names":["CreateWorkflowStateRepositoryImpl","createEntry","modelProvider","mapper","input","model","createResult","Result","WorkflowStatePersistenceError","record","error","CreateWorkflowStateRepository","Repository","CreateEntryUseCase","WorkflowStateModelProvider","WorkflowStateMapper"],"mappings":";;;;;AASA,MAAMA;IACF,YACYC,WAAyC,EACzCC,aAAmD,EACnDC,MAAqC,CAC/C;aAHUF,WAAW,GAAXA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAuB,EAAqB;QACtD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,IAAI;YACA,MAAMC,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAmBD,OAAO;gBACzE,QAAQD;YACZ;YAEA,IAAIE,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,8BAA8BF,aAAa,KAAK;YAG3E,MAAMG,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACH,aAAa,KAAK;YAC1D,OAAOC,OAAO,EAAE,CAACE;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOH,OAAO,IAAI,CAAC,IAAIC,8BAA8BE;QACzD;IACJ;AACJ;AAEO,MAAMC,8DAAgCC,8BAAAA,oBAA+B,CAAC;IACzE,gBAAgBZ;IAChB,cAAc;QAACa;QAAoBC;QAA4BC;KAAoB;AACvF"}
|
|
@@ -79,6 +79,7 @@ class CreateWorkflowStateUseCaseImpl {
|
|
|
79
79
|
if (createResult.isFail()) return Result.fail(createResult.error);
|
|
80
80
|
const createdRecord = createResult.value;
|
|
81
81
|
const teamsResult = await this.getUserTeams.execute(identity.id);
|
|
82
|
+
if (teamsResult.isFail()) return Result.fail(teamsResult.error);
|
|
82
83
|
const teams = teamsResult.value;
|
|
83
84
|
const workflowState = new WorkflowState(createdRecord, teams, identity);
|
|
84
85
|
await this.eventPublisher.publish(new WorkflowStateAfterCreateEvent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { ListWorkflowsUseCase } from \"~/features/workflow/ListWorkflows/index.js\";\nimport { GetTargetWorkflowStateUseCase } from \"../GetTargetWorkflowState/index.js\";\nimport {\n CreateWorkflowStateRepository,\n CreateWorkflowStateUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowStateAfterCreateEvent } from \"./events.js\";\nimport { WorkflowStateContextProvider } from \"./WorkflowStateContextProvider.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateRecordState } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateValidationError,\n ActiveStateExistsError,\n MultipleWorkflowsFoundError,\n WorkflowStatePersistenceError\n} from \"~/domain/workflowState/errors.js\";\nimport { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\n\nclass CreateWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private listWorkflows: ListWorkflowsUseCase.Interface,\n private getTargetState: GetTargetWorkflowStateUseCase.Interface,\n private repository: CreateWorkflowStateRepository.Interface,\n private targetContextProvider: WorkflowStateContextProvider.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const { id: targetId, version } = parseIdentifier(input.targetRevisionId);\n if (!version) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state without version of a target record.\"\n )\n );\n }\n\n const workflowsResult = await this.listWorkflows.execute({\n where: {\n app: input.app\n },\n limit: 1\n });\n\n if (workflowsResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(workflowsResult.error));\n }\n\n const { items: workflows, meta } = workflowsResult.value;\n const workflow = workflows[0];\n\n if (!workflow) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: \"\",\n app: input.app\n })\n );\n }\n\n if (meta.totalCount > 1) {\n return Result.fail(\n new MultipleWorkflowsFoundError({\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n workflows,\n meta\n })\n );\n }\n\n const existingStateResult = await this.getTargetState.execute({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n if (existingStateResult.isOk()) {\n return Result.fail(\n new ActiveStateExistsError({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n })\n );\n }\n\n if (workflow.steps.length === 0) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state for a workflow that has no steps defined.\"\n )\n );\n }\n\n const identity = this.identityContext.getIdentity();\n\n const targetContext = await this.targetContextProvider.provide({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n const record: CreateWorkflowStateRepository.Input = {\n workflowId: workflow.id,\n comment: undefined,\n state: WorkflowStateRecordState.pending,\n app: input.app,\n title: input.title,\n targetId,\n isActive: true,\n targetRevisionId: input.targetRevisionId,\n targetContext,\n steps: workflow.steps.map(step => ({\n ...step,\n state: WorkflowStateRecordState.pending,\n savedBy: null,\n comment: null\n }))\n };\n\n const createResult = await this.repository.execute(record);\n if (createResult.isFail()) {\n return Result.fail(createResult.error);\n }\n\n const createdRecord = createResult.value;\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n const teams = teamsResult.value;\n const workflowState = new WorkflowState(createdRecord, teams, identity);\n\n await this.eventPublisher.publish(\n new WorkflowStateAfterCreateEvent({\n state: workflowState\n })\n );\n\n return Result.ok(workflowState);\n }\n}\n\nexport const CreateWorkflowStateUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowStateUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n EventPublisher,\n ListWorkflowsUseCase,\n GetTargetWorkflowStateUseCase,\n CreateWorkflowStateRepository,\n WorkflowStateContextProvider\n ]\n});\n"],"names":["CreateWorkflowStateUseCaseImpl","identityContext","getUserTeams","eventPublisher","listWorkflows","getTargetState","repository","targetContextProvider","input","targetId","version","parseIdentifier","Result","WorkflowStateValidationError","workflowsResult","WorkflowStatePersistenceError","workflows","meta","workflow","WorkflowNotFoundError","MultipleWorkflowsFoundError","existingStateResult","ActiveStateExistsError","identity","targetContext","record","undefined","WorkflowStateRecordState","step","createResult","createdRecord","teamsResult","teams","workflowState","WorkflowState","WorkflowStateAfterCreateEvent","CreateWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","EventPublisher","ListWorkflowsUseCase","GetTargetWorkflowStateUseCase","CreateWorkflowStateRepository","WorkflowStateContextProvider"],"mappings":";;;;;;;;;;;;;;AAuBA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,cAAwC,EACxCC,aAA6C,EAC7CC,cAAuD,EACvDC,UAAmD,EACnDC,qBAA6D,CACvE;aAPUN,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,cAAc,GAAdA;aACAC,aAAa,GAAbA;aACAC,cAAc,GAAdA;aACAC,UAAU,GAAVA;aACAC,qBAAqB,GAArBA;IACT;IAEH,MAAM,QAAQC,KAAoB,EAAkB;QAChD,MAAM,EAAE,IAAIC,QAAQ,EAAEC,OAAO,EAAE,GAAGC,gBAAgBH,MAAM,gBAAgB;QACxE,IAAI,CAACE,SACD,OAAOE,OAAO,IAAI,CACd,IAAIC,6BACA;QAKZ,MAAMC,kBAAkB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACrD,OAAO;gBACH,KAAKN,MAAM,GAAG;YAClB;YACA,OAAO;QACX;QAEA,IAAIM,gBAAgB,MAAM,IACtB,OAAOF,OAAO,IAAI,CAAC,IAAIG,8BAA8BD,gBAAgB,KAAK;QAG9E,MAAM,EAAE,OAAOE,SAAS,EAAEC,IAAI,EAAE,GAAGH,gBAAgB,KAAK;QACxD,MAAMI,WAAWF,SAAS,CAAC,EAAE;QAE7B,IAAI,CAACE,UACD,OAAON,OAAO,IAAI,CACd,IAAIO,sBAAsB;YACtB,IAAI;YACJ,KAAKX,MAAM,GAAG;QAClB;QAIR,IAAIS,KAAK,UAAU,GAAG,GAClB,OAAOL,OAAO,IAAI,CACd,IAAIQ,4BAA4B;YAC5B,KAAKZ,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;YACxCQ;YACAC;QACJ;QAIR,MAAMI,sBAAsB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC1D,KAAKb,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;QAC5C;QAEA,IAAIa,oBAAoB,IAAI,IACxB,OAAOT,OAAO,IAAI,CACd,IAAIU,uBAAuB;YACvB,KAAKd,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;QAC5C;QAIR,IAAIU,AAA0B,MAA1BA,SAAS,KAAK,CAAC,MAAM,EACrB,OAAON,OAAO,IAAI,CACd,IAAIC,6BACA;QAKZ,MAAMU,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAEjD,MAAMC,gBAAgB,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YAC3D,KAAKhB,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;QAC5C;QAEA,MAAMiB,SAA8C;YAChD,YAAYP,SAAS,EAAE;YACvB,SAASQ;YACT,OAAOC,yBAAyB,OAAO;YACvC,KAAKnB,MAAM,GAAG;YACd,OAAOA,MAAM,KAAK;YAClBC;YACA,UAAU;YACV,kBAAkBD,MAAM,gBAAgB;YACxCgB;YACA,OAAON,SAAS,KAAK,CAAC,GAAG,CAACU,CAAAA,OAAS;oBAC/B,GAAGA,IAAI;oBACP,OAAOD,yBAAyB,OAAO;oBACvC,SAAS;oBACT,SAAS;gBACb;QACJ;QAEA,MAAME,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACJ;QACnD,IAAII,aAAa,MAAM,IACnB,OAAOjB,OAAO,IAAI,CAACiB,aAAa,KAAK;QAGzC,MAAMC,gBAAgBD,aAAa,KAAK;QAExC,MAAME,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACR,SAAS,EAAE;QAC/D,
|
|
1
|
+
{"version":3,"file":"features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { ListWorkflowsUseCase } from \"~/features/workflow/ListWorkflows/index.js\";\nimport { GetTargetWorkflowStateUseCase } from \"../GetTargetWorkflowState/index.js\";\nimport {\n CreateWorkflowStateRepository,\n CreateWorkflowStateUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowStateAfterCreateEvent } from \"./events.js\";\nimport { WorkflowStateContextProvider } from \"./WorkflowStateContextProvider.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateRecordState } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateValidationError,\n ActiveStateExistsError,\n MultipleWorkflowsFoundError,\n WorkflowStatePersistenceError\n} from \"~/domain/workflowState/errors.js\";\nimport { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\n\nclass CreateWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private listWorkflows: ListWorkflowsUseCase.Interface,\n private getTargetState: GetTargetWorkflowStateUseCase.Interface,\n private repository: CreateWorkflowStateRepository.Interface,\n private targetContextProvider: WorkflowStateContextProvider.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const { id: targetId, version } = parseIdentifier(input.targetRevisionId);\n if (!version) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state without version of a target record.\"\n )\n );\n }\n\n const workflowsResult = await this.listWorkflows.execute({\n where: {\n app: input.app\n },\n limit: 1\n });\n\n if (workflowsResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(workflowsResult.error));\n }\n\n const { items: workflows, meta } = workflowsResult.value;\n const workflow = workflows[0];\n\n if (!workflow) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: \"\",\n app: input.app\n })\n );\n }\n\n if (meta.totalCount > 1) {\n return Result.fail(\n new MultipleWorkflowsFoundError({\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n workflows,\n meta\n })\n );\n }\n\n const existingStateResult = await this.getTargetState.execute({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n if (existingStateResult.isOk()) {\n return Result.fail(\n new ActiveStateExistsError({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n })\n );\n }\n\n if (workflow.steps.length === 0) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state for a workflow that has no steps defined.\"\n )\n );\n }\n\n const identity = this.identityContext.getIdentity();\n\n const targetContext = await this.targetContextProvider.provide({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n const record: CreateWorkflowStateRepository.Input = {\n workflowId: workflow.id,\n comment: undefined,\n state: WorkflowStateRecordState.pending,\n app: input.app,\n title: input.title,\n targetId,\n isActive: true,\n targetRevisionId: input.targetRevisionId,\n targetContext,\n steps: workflow.steps.map(step => ({\n ...step,\n state: WorkflowStateRecordState.pending,\n savedBy: null,\n comment: null\n }))\n };\n\n const createResult = await this.repository.execute(record);\n if (createResult.isFail()) {\n return Result.fail(createResult.error);\n }\n\n const createdRecord = createResult.value;\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n if (teamsResult.isFail()) {\n return Result.fail(teamsResult.error);\n }\n const teams = teamsResult.value;\n const workflowState = new WorkflowState(createdRecord, teams, identity);\n\n await this.eventPublisher.publish(\n new WorkflowStateAfterCreateEvent({\n state: workflowState\n })\n );\n\n return Result.ok(workflowState);\n }\n}\n\nexport const CreateWorkflowStateUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowStateUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n EventPublisher,\n ListWorkflowsUseCase,\n GetTargetWorkflowStateUseCase,\n CreateWorkflowStateRepository,\n WorkflowStateContextProvider\n ]\n});\n"],"names":["CreateWorkflowStateUseCaseImpl","identityContext","getUserTeams","eventPublisher","listWorkflows","getTargetState","repository","targetContextProvider","input","targetId","version","parseIdentifier","Result","WorkflowStateValidationError","workflowsResult","WorkflowStatePersistenceError","workflows","meta","workflow","WorkflowNotFoundError","MultipleWorkflowsFoundError","existingStateResult","ActiveStateExistsError","identity","targetContext","record","undefined","WorkflowStateRecordState","step","createResult","createdRecord","teamsResult","teams","workflowState","WorkflowState","WorkflowStateAfterCreateEvent","CreateWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","EventPublisher","ListWorkflowsUseCase","GetTargetWorkflowStateUseCase","CreateWorkflowStateRepository","WorkflowStateContextProvider"],"mappings":";;;;;;;;;;;;;;AAuBA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,cAAwC,EACxCC,aAA6C,EAC7CC,cAAuD,EACvDC,UAAmD,EACnDC,qBAA6D,CACvE;aAPUN,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,cAAc,GAAdA;aACAC,aAAa,GAAbA;aACAC,cAAc,GAAdA;aACAC,UAAU,GAAVA;aACAC,qBAAqB,GAArBA;IACT;IAEH,MAAM,QAAQC,KAAoB,EAAkB;QAChD,MAAM,EAAE,IAAIC,QAAQ,EAAEC,OAAO,EAAE,GAAGC,gBAAgBH,MAAM,gBAAgB;QACxE,IAAI,CAACE,SACD,OAAOE,OAAO,IAAI,CACd,IAAIC,6BACA;QAKZ,MAAMC,kBAAkB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACrD,OAAO;gBACH,KAAKN,MAAM,GAAG;YAClB;YACA,OAAO;QACX;QAEA,IAAIM,gBAAgB,MAAM,IACtB,OAAOF,OAAO,IAAI,CAAC,IAAIG,8BAA8BD,gBAAgB,KAAK;QAG9E,MAAM,EAAE,OAAOE,SAAS,EAAEC,IAAI,EAAE,GAAGH,gBAAgB,KAAK;QACxD,MAAMI,WAAWF,SAAS,CAAC,EAAE;QAE7B,IAAI,CAACE,UACD,OAAON,OAAO,IAAI,CACd,IAAIO,sBAAsB;YACtB,IAAI;YACJ,KAAKX,MAAM,GAAG;QAClB;QAIR,IAAIS,KAAK,UAAU,GAAG,GAClB,OAAOL,OAAO,IAAI,CACd,IAAIQ,4BAA4B;YAC5B,KAAKZ,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;YACxCQ;YACAC;QACJ;QAIR,MAAMI,sBAAsB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC1D,KAAKb,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;QAC5C;QAEA,IAAIa,oBAAoB,IAAI,IACxB,OAAOT,OAAO,IAAI,CACd,IAAIU,uBAAuB;YACvB,KAAKd,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;QAC5C;QAIR,IAAIU,AAA0B,MAA1BA,SAAS,KAAK,CAAC,MAAM,EACrB,OAAON,OAAO,IAAI,CACd,IAAIC,6BACA;QAKZ,MAAMU,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAEjD,MAAMC,gBAAgB,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YAC3D,KAAKhB,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;QAC5C;QAEA,MAAMiB,SAA8C;YAChD,YAAYP,SAAS,EAAE;YACvB,SAASQ;YACT,OAAOC,yBAAyB,OAAO;YACvC,KAAKnB,MAAM,GAAG;YACd,OAAOA,MAAM,KAAK;YAClBC;YACA,UAAU;YACV,kBAAkBD,MAAM,gBAAgB;YACxCgB;YACA,OAAON,SAAS,KAAK,CAAC,GAAG,CAACU,CAAAA,OAAS;oBAC/B,GAAGA,IAAI;oBACP,OAAOD,yBAAyB,OAAO;oBACvC,SAAS;oBACT,SAAS;gBACb;QACJ;QAEA,MAAME,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACJ;QACnD,IAAII,aAAa,MAAM,IACnB,OAAOjB,OAAO,IAAI,CAACiB,aAAa,KAAK;QAGzC,MAAMC,gBAAgBD,aAAa,KAAK;QAExC,MAAME,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACR,SAAS,EAAE;QAC/D,IAAIQ,YAAY,MAAM,IAClB,OAAOnB,OAAO,IAAI,CAACmB,YAAY,KAAK;QAExC,MAAMC,QAAQD,YAAY,KAAK;QAC/B,MAAME,gBAAgB,IAAIC,cAAcJ,eAAeE,OAAOT;QAE9D,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIY,8BAA8B;YAC9B,OAAOF;QACX;QAGJ,OAAOrB,OAAO,EAAE,CAACqB;IACrB;AACJ;AAEO,MAAMG,wDAA6BC,2BAAAA,oBAA4B,CAAC;IACnE,gBAAgBrC;IAChB,cAAc;QACVsC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js
CHANGED
|
@@ -37,6 +37,7 @@ class DeleteTargetWorkflowStateUseCaseImpl {
|
|
|
37
37
|
if (deleteResult.isFail()) return deleteResult;
|
|
38
38
|
const identity = this.identityContext.getIdentity();
|
|
39
39
|
const teamsResult = await this.getUserTeams.execute(identity.id);
|
|
40
|
+
if (teamsResult.isFail()) return Result.fail(teamsResult.error);
|
|
40
41
|
const teams = teamsResult.value;
|
|
41
42
|
const state = new WorkflowState(record, teams, identity);
|
|
42
43
|
await this.eventPublisher.publish(new WorkflowStateAfterDeleteEvent({
|
package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { GetWorkflowUseCase } from \"~/features/workflow/GetWorkflow/index.js\";\nimport { GetTargetWorkflowStateUseCase } from \"../GetTargetWorkflowState/index.js\";\nimport { DeleteWorkflowStateRepository } from \"../DeleteWorkflowState/index.js\";\nimport { DeleteTargetWorkflowStateUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowStateAfterDeleteEvent } from \"./events.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\n\nclass DeleteTargetWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private getWorkflow: GetWorkflowUseCase.Interface,\n private getTargetWorkflowState: GetTargetWorkflowStateUseCase.Interface,\n private repository: DeleteWorkflowStateRepository.Interface\n ) {}\n\n async execute(app: string, targetRevisionId: string): UseCase.Return {\n const stateResult = await this.getTargetWorkflowState.execute({ app, targetRevisionId });\n if (stateResult.isFail()) {\n return Result.ok();\n }\n\n const record = stateResult.value;\n\n const workflowResult = await this.getWorkflow.execute({\n app: record.app,\n id: record.workflowId\n });\n\n if (workflowResult.isFail()) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: record.workflowId,\n app: record.app\n })\n );\n }\n\n const deleteResult = await this.repository.execute(record.id);\n if (deleteResult.isFail()) {\n return deleteResult;\n }\n\n const identity = this.identityContext.getIdentity();\n const teamsResult = await this.getUserTeams.execute(identity.id);\n const teams = teamsResult.value;\n const state = new WorkflowState(record, teams, identity);\n\n await this.eventPublisher.publish(\n new WorkflowStateAfterDeleteEvent({\n state\n })\n );\n\n return Result.ok();\n }\n}\n\nexport const DeleteTargetWorkflowStateUseCase = UseCase.createImplementation({\n implementation: DeleteTargetWorkflowStateUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n EventPublisher,\n GetWorkflowUseCase,\n GetTargetWorkflowStateUseCase,\n DeleteWorkflowStateRepository\n ]\n});\n"],"names":["DeleteTargetWorkflowStateUseCaseImpl","identityContext","getUserTeams","eventPublisher","getWorkflow","getTargetWorkflowState","repository","app","targetRevisionId","stateResult","Result","record","workflowResult","WorkflowNotFoundError","deleteResult","identity","teamsResult","teams","state","WorkflowState","WorkflowStateAfterDeleteEvent","DeleteTargetWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","EventPublisher","GetWorkflowUseCase","GetTargetWorkflowStateUseCase","DeleteWorkflowStateRepository"],"mappings":";;;;;;;;;;;AAYA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,cAAwC,EACxCC,WAAyC,EACzCC,sBAA+D,EAC/DC,UAAmD,CAC7D;aANUL,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,sBAAsB,GAAtBA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,GAAW,EAAEC,gBAAwB,EAAkB;QACjE,MAAMC,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAAEF;YAAKC;QAAiB;QACtF,IAAIC,YAAY,MAAM,IAClB,OAAOC,OAAO,EAAE;QAGpB,MAAMC,SAASF,YAAY,KAAK;QAEhC,MAAMG,iBAAiB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAClD,KAAKD,OAAO,GAAG;YACf,IAAIA,OAAO,UAAU;QACzB;QAEA,IAAIC,eAAe,MAAM,IACrB,OAAOF,OAAO,IAAI,CACd,IAAIG,sBAAsB;YACtB,IAAIF,OAAO,UAAU;YACrB,KAAKA,OAAO,GAAG;QACnB;QAIR,MAAMG,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACH,OAAO,EAAE;QAC5D,IAAIG,aAAa,MAAM,IACnB,OAAOA;QAGX,MAAMC,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QACjD,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,SAAS,EAAE;QAC/D,
|
|
1
|
+
{"version":3,"file":"features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { GetWorkflowUseCase } from \"~/features/workflow/GetWorkflow/index.js\";\nimport { GetTargetWorkflowStateUseCase } from \"../GetTargetWorkflowState/index.js\";\nimport { DeleteWorkflowStateRepository } from \"../DeleteWorkflowState/index.js\";\nimport { DeleteTargetWorkflowStateUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowStateAfterDeleteEvent } from \"./events.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\n\nclass DeleteTargetWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private getWorkflow: GetWorkflowUseCase.Interface,\n private getTargetWorkflowState: GetTargetWorkflowStateUseCase.Interface,\n private repository: DeleteWorkflowStateRepository.Interface\n ) {}\n\n async execute(app: string, targetRevisionId: string): UseCase.Return {\n const stateResult = await this.getTargetWorkflowState.execute({ app, targetRevisionId });\n if (stateResult.isFail()) {\n return Result.ok();\n }\n\n const record = stateResult.value;\n\n const workflowResult = await this.getWorkflow.execute({\n app: record.app,\n id: record.workflowId\n });\n\n if (workflowResult.isFail()) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: record.workflowId,\n app: record.app\n })\n );\n }\n\n const deleteResult = await this.repository.execute(record.id);\n if (deleteResult.isFail()) {\n return deleteResult;\n }\n\n const identity = this.identityContext.getIdentity();\n const teamsResult = await this.getUserTeams.execute(identity.id);\n if (teamsResult.isFail()) {\n return Result.fail(teamsResult.error);\n }\n const teams = teamsResult.value;\n const state = new WorkflowState(record, teams, identity);\n\n await this.eventPublisher.publish(\n new WorkflowStateAfterDeleteEvent({\n state\n })\n );\n\n return Result.ok();\n }\n}\n\nexport const DeleteTargetWorkflowStateUseCase = UseCase.createImplementation({\n implementation: DeleteTargetWorkflowStateUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n EventPublisher,\n GetWorkflowUseCase,\n GetTargetWorkflowStateUseCase,\n DeleteWorkflowStateRepository\n ]\n});\n"],"names":["DeleteTargetWorkflowStateUseCaseImpl","identityContext","getUserTeams","eventPublisher","getWorkflow","getTargetWorkflowState","repository","app","targetRevisionId","stateResult","Result","record","workflowResult","WorkflowNotFoundError","deleteResult","identity","teamsResult","teams","state","WorkflowState","WorkflowStateAfterDeleteEvent","DeleteTargetWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","EventPublisher","GetWorkflowUseCase","GetTargetWorkflowStateUseCase","DeleteWorkflowStateRepository"],"mappings":";;;;;;;;;;;AAYA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,cAAwC,EACxCC,WAAyC,EACzCC,sBAA+D,EAC/DC,UAAmD,CAC7D;aANUL,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,sBAAsB,GAAtBA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,GAAW,EAAEC,gBAAwB,EAAkB;QACjE,MAAMC,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAAEF;YAAKC;QAAiB;QACtF,IAAIC,YAAY,MAAM,IAClB,OAAOC,OAAO,EAAE;QAGpB,MAAMC,SAASF,YAAY,KAAK;QAEhC,MAAMG,iBAAiB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAClD,KAAKD,OAAO,GAAG;YACf,IAAIA,OAAO,UAAU;QACzB;QAEA,IAAIC,eAAe,MAAM,IACrB,OAAOF,OAAO,IAAI,CACd,IAAIG,sBAAsB;YACtB,IAAIF,OAAO,UAAU;YACrB,KAAKA,OAAO,GAAG;QACnB;QAIR,MAAMG,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACH,OAAO,EAAE;QAC5D,IAAIG,aAAa,MAAM,IACnB,OAAOA;QAGX,MAAMC,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QACjD,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,SAAS,EAAE;QAC/D,IAAIC,YAAY,MAAM,IAClB,OAAON,OAAO,IAAI,CAACM,YAAY,KAAK;QAExC,MAAMC,QAAQD,YAAY,KAAK;QAC/B,MAAME,QAAQ,IAAIC,cAAcR,QAAQM,OAAOF;QAE/C,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIK,8BAA8B;YAC9BF;QACJ;QAGJ,OAAOR,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMW,oEAAmCC,iCAAAA,oBAA4B,CAAC;IACzE,gBAAgBtB;IAChB,cAAc;QACVuB;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
|
|
3
3
|
import { DeleteWorkflowStateRepository as Repository } from "./abstractions.js";
|
|
4
4
|
declare class DeleteWorkflowStateRepositoryImpl implements Repository.Interface {
|
|
5
5
|
private deleteEntry;
|
|
6
|
-
private
|
|
7
|
-
constructor(deleteEntry: DeleteEntryUseCase.Interface,
|
|
6
|
+
private modelProvider;
|
|
7
|
+
constructor(deleteEntry: DeleteEntryUseCase.Interface, modelProvider: WorkflowStateModelProvider.Interface);
|
|
8
8
|
execute(id: string): Repository.Return;
|
|
9
9
|
}
|
|
10
10
|
export declare const DeleteWorkflowStateRepository: typeof DeleteWorkflowStateRepositoryImpl & {
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
|
|
3
|
-
import {
|
|
3
|
+
import { WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
|
|
4
4
|
import { DeleteWorkflowStateRepository } from "./abstractions.js";
|
|
5
5
|
class DeleteWorkflowStateRepositoryImpl {
|
|
6
|
-
constructor(deleteEntry,
|
|
6
|
+
constructor(deleteEntry, modelProvider){
|
|
7
7
|
this.deleteEntry = deleteEntry;
|
|
8
|
-
this.
|
|
8
|
+
this.modelProvider = modelProvider;
|
|
9
9
|
}
|
|
10
10
|
async execute(id) {
|
|
11
|
-
await this.
|
|
11
|
+
const model = await this.modelProvider.get();
|
|
12
|
+
await this.deleteEntry.execute(model, id);
|
|
12
13
|
return Result.ok();
|
|
13
14
|
}
|
|
14
15
|
}
|
|
@@ -16,7 +17,7 @@ const DeleteWorkflowStateRepository_DeleteWorkflowStateRepository = DeleteWorkfl
|
|
|
16
17
|
implementation: DeleteWorkflowStateRepositoryImpl,
|
|
17
18
|
dependencies: [
|
|
18
19
|
DeleteEntryUseCase,
|
|
19
|
-
|
|
20
|
+
WorkflowStateModelProvider
|
|
20
21
|
]
|
|
21
22
|
});
|
|
22
23
|
export { DeleteWorkflowStateRepository_DeleteWorkflowStateRepository as DeleteWorkflowStateRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport { WorkflowStateModelProvider } from \"~/domain/workflowState/abstractions.js\";\nimport { DeleteWorkflowStateRepository as Repository } from \"./abstractions.js\";\n\nclass DeleteWorkflowStateRepositoryImpl implements Repository.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private modelProvider: WorkflowStateModelProvider.Interface\n ) {}\n\n async execute(id: string): Repository.Return {\n const model = await this.modelProvider.get();\n await this.deleteEntry.execute(model, id);\n\n return Result.ok();\n }\n}\n\nexport const DeleteWorkflowStateRepository = Repository.createImplementation({\n implementation: DeleteWorkflowStateRepositoryImpl,\n dependencies: [DeleteEntryUseCase, WorkflowStateModelProvider]\n});\n"],"names":["DeleteWorkflowStateRepositoryImpl","deleteEntry","modelProvider","id","model","Result","DeleteWorkflowStateRepository","Repository","DeleteEntryUseCase","WorkflowStateModelProvider"],"mappings":";;;;AAKA,MAAMA;IACF,YACYC,WAAyC,EACzCC,aAAmD,CAC7D;aAFUD,WAAW,GAAXA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAqB;QACzC,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACA,OAAOD;QAEtC,OAAOE,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMC,8DAAgCC,8BAAAA,oBAA+B,CAAC;IACzE,gBAAgBP;IAChB,cAAc;QAACQ;QAAoBC;KAA2B;AAClE"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
|
|
2
|
-
import {
|
|
2
|
+
import { WorkflowStateModelProvider, WorkflowStateMapper } from "../../../domain/workflowState/abstractions.js";
|
|
3
3
|
import { GetTargetWorkflowStateRepository as Repository } from "./abstractions.js";
|
|
4
4
|
declare class GetTargetWorkflowStateRepositoryImpl implements Repository.Interface {
|
|
5
5
|
private listEntries;
|
|
6
|
-
private
|
|
6
|
+
private modelProvider;
|
|
7
7
|
private mapper;
|
|
8
|
-
constructor(listEntries: ListLatestEntriesUseCase.Interface,
|
|
8
|
+
constructor(listEntries: ListLatestEntriesUseCase.Interface, modelProvider: WorkflowStateModelProvider.Interface, mapper: WorkflowStateMapper.Interface);
|
|
9
9
|
execute(input: Repository.Params): Repository.Return;
|
|
10
10
|
}
|
|
11
11
|
export declare const GetTargetWorkflowStateRepository: typeof GetTargetWorkflowStateRepositoryImpl & {
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
|
|
3
|
-
import { WorkflowStateMapper,
|
|
3
|
+
import { WorkflowStateMapper, WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
|
|
4
4
|
import { MultipleWorkflowsFoundError, WorkflowStateNotFoundError, WorkflowStatePersistenceError } from "../../../domain/workflowState/errors.js";
|
|
5
5
|
import { GetTargetWorkflowStateRepository } from "./abstractions.js";
|
|
6
6
|
class GetTargetWorkflowStateRepositoryImpl {
|
|
7
|
-
constructor(listEntries,
|
|
7
|
+
constructor(listEntries, modelProvider, mapper){
|
|
8
8
|
this.listEntries = listEntries;
|
|
9
|
-
this.
|
|
9
|
+
this.modelProvider = modelProvider;
|
|
10
10
|
this.mapper = mapper;
|
|
11
11
|
}
|
|
12
12
|
async execute(input) {
|
|
13
|
-
const
|
|
13
|
+
const model = await this.modelProvider.get();
|
|
14
|
+
const listResult = await this.listEntries.execute(model, {
|
|
14
15
|
where: {
|
|
15
16
|
values: {
|
|
16
17
|
app: input.app,
|
|
@@ -39,7 +40,7 @@ const GetTargetWorkflowStateRepository_GetTargetWorkflowStateRepository = GetTar
|
|
|
39
40
|
implementation: GetTargetWorkflowStateRepositoryImpl,
|
|
40
41
|
dependencies: [
|
|
41
42
|
ListLatestEntriesUseCase,
|
|
42
|
-
|
|
43
|
+
WorkflowStateModelProvider,
|
|
43
44
|
WorkflowStateMapper
|
|
44
45
|
]
|
|
45
46
|
});
|
package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport {\n WorkflowStateModelProvider,\n WorkflowStateMapper\n} from \"~/domain/workflowState/abstractions.js\";\nimport type { IWorkflowStateRecord } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateNotFoundError,\n WorkflowStatePersistenceError,\n MultipleWorkflowsFoundError\n} from \"~/domain/workflowState/errors.js\";\nimport { GetTargetWorkflowStateRepository as Repository } from \"./abstractions.js\";\n\nclass GetTargetWorkflowStateRepositoryImpl implements Repository.Interface {\n constructor(\n private listEntries: ListLatestEntriesUseCase.Interface,\n private modelProvider: WorkflowStateModelProvider.Interface,\n private mapper: WorkflowStateMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const model = await this.modelProvider.get();\n const listResult = await this.listEntries.execute<Omit<IWorkflowStateRecord, \"id\">>(model, {\n where: {\n values: {\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n isActive: true\n }\n },\n limit: 1\n });\n\n if (listResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(listResult.error));\n }\n\n const { entries, meta } = listResult.value;\n\n if (entries.length === 0) {\n return Result.fail(\n new WorkflowStateNotFoundError({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n })\n );\n }\n\n if (meta.totalCount > 1) {\n return Result.fail(\n new MultipleWorkflowsFoundError({\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n items: entries\n })\n );\n }\n\n const record = this.mapper.fromCmsEntry(entries[0]);\n return Result.ok(record);\n }\n}\n\nexport const GetTargetWorkflowStateRepository = Repository.createImplementation({\n implementation: GetTargetWorkflowStateRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, WorkflowStateModelProvider, WorkflowStateMapper]\n});\n"],"names":["GetTargetWorkflowStateRepositoryImpl","listEntries","modelProvider","mapper","input","model","listResult","Result","WorkflowStatePersistenceError","entries","meta","WorkflowStateNotFoundError","MultipleWorkflowsFoundError","record","GetTargetWorkflowStateRepository","Repository","ListLatestEntriesUseCase","WorkflowStateModelProvider","WorkflowStateMapper"],"mappings":";;;;;AAcA,MAAMA;IACF,YACYC,WAA+C,EAC/CC,aAAmD,EACnDC,MAAqC,CAC/C;aAHUF,WAAW,GAAXA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAMC,aAAa,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAmCD,OAAO;YACvF,OAAO;gBACH,QAAQ;oBACJ,KAAKD,MAAM,GAAG;oBACd,kBAAkBA,MAAM,gBAAgB;oBACxC,UAAU;gBACd;YACJ;YACA,OAAO;QACX;QAEA,IAAIE,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,8BAA8BF,WAAW,KAAK;QAGzE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,WAAW,KAAK;QAE1C,IAAIG,AAAmB,MAAnBA,QAAQ,MAAM,EACd,OAAOF,OAAO,IAAI,CACd,IAAII,2BAA2B;YAC3B,KAAKP,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;QAC5C;QAIR,IAAIM,KAAK,UAAU,GAAG,GAClB,OAAOH,OAAO,IAAI,CACd,IAAIK,4BAA4B;YAC5B,KAAKR,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;YACxC,OAAOK;QACX;QAIR,MAAMI,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACJ,OAAO,CAAC,EAAE;QAClD,OAAOF,OAAO,EAAE,CAACM;IACrB;AACJ;AAEO,MAAMC,oEAAmCC,iCAAAA,oBAA+B,CAAC;IAC5E,gBAAgBf;IAChB,cAAc;QAACgB;QAA0BC;QAA4BC;KAAoB;AAC7F"}
|
|
@@ -19,6 +19,7 @@ class GetTargetWorkflowStateUseCaseImpl {
|
|
|
19
19
|
const record = recordResult.value;
|
|
20
20
|
const identity = this.identityContext.getIdentity();
|
|
21
21
|
const teamsResult = await this.getUserTeams.execute(identity.id);
|
|
22
|
+
if (teamsResult.isFail()) return Result.fail(teamsResult.error);
|
|
22
23
|
const teams = teamsResult.value;
|
|
23
24
|
const workflowState = new WorkflowState(record, teams, identity);
|
|
24
25
|
return Result.ok(workflowState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport {\n GetTargetWorkflowStateRepository,\n GetTargetWorkflowStateUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateValidationError } from \"~/domain/workflowState/errors.js\";\n\nclass GetTargetWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private repository: GetTargetWorkflowStateRepository.Interface\n ) {}\n\n async execute(input: UseCase.Params): UseCase.Return {\n const { version } = parseIdentifier(input.targetRevisionId);\n if (!version) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot get a workflow state without version of a target record.\"\n )\n );\n }\n\n const recordResult = await this.repository.execute(input);\n\n if (recordResult.isFail()) {\n return Result.fail(recordResult.error);\n }\n\n const record = recordResult.value;\n\n const identity = this.identityContext.getIdentity();\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n const teams = teamsResult.value;\n\n const workflowState = new WorkflowState(record, teams, identity);\n\n return Result.ok(workflowState);\n }\n}\n\nexport const GetTargetWorkflowStateUseCase = UseCase.createImplementation({\n implementation: GetTargetWorkflowStateUseCaseImpl,\n dependencies: [IdentityContext, GetUserTeamsUseCase, GetTargetWorkflowStateRepository]\n});\n"],"names":["GetTargetWorkflowStateUseCaseImpl","identityContext","getUserTeams","repository","input","version","parseIdentifier","Result","WorkflowStateValidationError","recordResult","record","identity","teamsResult","teams","workflowState","WorkflowState","GetTargetWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","GetTargetWorkflowStateRepository"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,UAAsD,CAChE;aAHUF,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,KAAqB,EAAkB;QACjD,MAAM,EAAEC,OAAO,EAAE,GAAGC,gBAAgBF,MAAM,gBAAgB;QAC1D,IAAI,CAACC,SACD,OAAOE,OAAO,IAAI,CACd,IAAIC,6BACA;QAKZ,MAAMC,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACL;QAEnD,IAAIK,aAAa,MAAM,IACnB,OAAOF,OAAO,IAAI,CAACE,aAAa,KAAK;QAGzC,MAAMC,SAASD,aAAa,KAAK;QAEjC,MAAME,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAEjD,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,SAAS,EAAE;QAC/D,
|
|
1
|
+
{"version":3,"file":"features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport {\n GetTargetWorkflowStateRepository,\n GetTargetWorkflowStateUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateValidationError } from \"~/domain/workflowState/errors.js\";\n\nclass GetTargetWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private repository: GetTargetWorkflowStateRepository.Interface\n ) {}\n\n async execute(input: UseCase.Params): UseCase.Return {\n const { version } = parseIdentifier(input.targetRevisionId);\n if (!version) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot get a workflow state without version of a target record.\"\n )\n );\n }\n\n const recordResult = await this.repository.execute(input);\n\n if (recordResult.isFail()) {\n return Result.fail(recordResult.error);\n }\n\n const record = recordResult.value;\n\n const identity = this.identityContext.getIdentity();\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n if (teamsResult.isFail()) {\n return Result.fail(teamsResult.error);\n }\n const teams = teamsResult.value;\n\n const workflowState = new WorkflowState(record, teams, identity);\n\n return Result.ok(workflowState);\n }\n}\n\nexport const GetTargetWorkflowStateUseCase = UseCase.createImplementation({\n implementation: GetTargetWorkflowStateUseCaseImpl,\n dependencies: [IdentityContext, GetUserTeamsUseCase, GetTargetWorkflowStateRepository]\n});\n"],"names":["GetTargetWorkflowStateUseCaseImpl","identityContext","getUserTeams","repository","input","version","parseIdentifier","Result","WorkflowStateValidationError","recordResult","record","identity","teamsResult","teams","workflowState","WorkflowState","GetTargetWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","GetTargetWorkflowStateRepository"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,UAAsD,CAChE;aAHUF,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,KAAqB,EAAkB;QACjD,MAAM,EAAEC,OAAO,EAAE,GAAGC,gBAAgBF,MAAM,gBAAgB;QAC1D,IAAI,CAACC,SACD,OAAOE,OAAO,IAAI,CACd,IAAIC,6BACA;QAKZ,MAAMC,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACL;QAEnD,IAAIK,aAAa,MAAM,IACnB,OAAOF,OAAO,IAAI,CAACE,aAAa,KAAK;QAGzC,MAAMC,SAASD,aAAa,KAAK;QAEjC,MAAME,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAEjD,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,SAAS,EAAE;QAC/D,IAAIC,YAAY,MAAM,IAClB,OAAOL,OAAO,IAAI,CAACK,YAAY,KAAK;QAExC,MAAMC,QAAQD,YAAY,KAAK;QAE/B,MAAME,gBAAgB,IAAIC,cAAcL,QAAQG,OAAOF;QAEvD,OAAOJ,OAAO,EAAE,CAACO;IACrB;AACJ;AAEO,MAAME,8DAAgCC,8BAAAA,oBAA4B,CAAC;IACtE,gBAAgBjB;IAChB,cAAc;QAACkB;QAAiBC;QAAqBC;KAAiC;AAC1F"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { WorkflowStateModelProvider, WorkflowStateMapper } from "../../../domain/workflowState/abstractions.js";
|
|
3
3
|
import { GetWorkflowStateRepository as Repository } from "./abstractions.js";
|
|
4
4
|
declare class GetWorkflowStateRepositoryImpl implements Repository.Interface {
|
|
5
5
|
private getEntryById;
|
|
6
|
-
private
|
|
6
|
+
private modelProvider;
|
|
7
7
|
private mapper;
|
|
8
|
-
constructor(getEntryById: GetEntryByIdUseCase.Interface,
|
|
8
|
+
constructor(getEntryById: GetEntryByIdUseCase.Interface, modelProvider: WorkflowStateModelProvider.Interface, mapper: WorkflowStateMapper.Interface);
|
|
9
9
|
execute(id: string): Repository.Return;
|
|
10
10
|
}
|
|
11
11
|
export declare const GetWorkflowStateRepository: typeof GetWorkflowStateRepositoryImpl & {
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
|
|
3
|
-
import { WorkflowStateMapper,
|
|
3
|
+
import { WorkflowStateMapper, WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
|
|
4
4
|
import { WorkflowStateNotFoundError, WorkflowStatePersistenceError } from "../../../domain/workflowState/errors.js";
|
|
5
5
|
import { GetWorkflowStateRepository } from "./abstractions.js";
|
|
6
6
|
class GetWorkflowStateRepositoryImpl {
|
|
7
|
-
constructor(getEntryById,
|
|
7
|
+
constructor(getEntryById, modelProvider, mapper){
|
|
8
8
|
this.getEntryById = getEntryById;
|
|
9
|
-
this.
|
|
9
|
+
this.modelProvider = modelProvider;
|
|
10
10
|
this.mapper = mapper;
|
|
11
11
|
}
|
|
12
12
|
async execute(id) {
|
|
13
|
-
const
|
|
13
|
+
const model = await this.modelProvider.get();
|
|
14
|
+
const entryResult = await this.getEntryById.execute(model, id);
|
|
14
15
|
if (entryResult.isFail()) {
|
|
15
16
|
if ("Cms/Entry/NotFound" === entryResult.error.code) return Result.fail(new WorkflowStateNotFoundError({
|
|
16
17
|
id
|
|
@@ -26,7 +27,7 @@ const GetWorkflowStateRepository_GetWorkflowStateRepository = GetWorkflowStateRe
|
|
|
26
27
|
implementation: GetWorkflowStateRepositoryImpl,
|
|
27
28
|
dependencies: [
|
|
28
29
|
GetEntryByIdUseCase,
|
|
29
|
-
|
|
30
|
+
WorkflowStateModelProvider,
|
|
30
31
|
WorkflowStateMapper
|
|
31
32
|
]
|
|
32
33
|
});
|