@webiny/api-workflows 6.4.11 → 6.6.0-alpha.1

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.
Files changed (104) hide show
  1. package/WorkflowsFeature.d.ts +5 -0
  2. package/WorkflowsFeature.js +70 -0
  3. package/WorkflowsFeature.js.map +1 -0
  4. package/WorkflowsSchemaFactory.d.ts +8 -0
  5. package/WorkflowsSchemaFactory.js +19 -0
  6. package/WorkflowsSchemaFactory.js.map +1 -0
  7. package/domain/workflow/abstractions.d.ts +13 -3
  8. package/domain/workflow/abstractions.js +2 -2
  9. package/domain/workflow/abstractions.js.map +1 -1
  10. package/domain/workflowState/WorkflowState.d.ts +1 -0
  11. package/domain/workflowState/WorkflowState.js +3 -0
  12. package/domain/workflowState/WorkflowState.js.map +1 -1
  13. package/domain/workflowState/WorkflowStateMapper.js +4 -2
  14. package/domain/workflowState/WorkflowStateMapper.js.map +1 -1
  15. package/domain/workflowState/abstractions.d.ts +16 -3
  16. package/domain/workflowState/abstractions.js +2 -2
  17. package/domain/workflowState/abstractions.js.map +1 -1
  18. package/domain/workflowState/stateModel.js +1 -0
  19. package/domain/workflowState/stateModel.js.map +1 -1
  20. package/features/WorkflowModelProviders.d.ts +34 -0
  21. package/features/WorkflowModelProviders.js +40 -0
  22. package/features/WorkflowModelProviders.js.map +1 -0
  23. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.d.ts +3 -3
  24. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js +6 -5
  25. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js.map +1 -1
  26. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.d.ts +3 -3
  27. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js +6 -5
  28. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js.map +1 -1
  29. package/features/workflow/GetWorkflow/GetWorkflowRepository.d.ts +3 -3
  30. package/features/workflow/GetWorkflow/GetWorkflowRepository.js +6 -5
  31. package/features/workflow/GetWorkflow/GetWorkflowRepository.js.map +1 -1
  32. package/features/workflow/ListWorkflows/ListWorkflowsRepository.d.ts +3 -3
  33. package/features/workflow/ListWorkflows/ListWorkflowsRepository.js +7 -6
  34. package/features/workflow/ListWorkflows/ListWorkflowsRepository.js.map +1 -1
  35. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.d.ts +3 -3
  36. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js +6 -5
  37. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js.map +1 -1
  38. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.d.ts +3 -3
  39. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js +6 -5
  40. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js.map +1 -1
  41. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.d.ts +3 -1
  42. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js +10 -3
  43. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js.map +1 -1
  44. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.d.ts +9 -0
  45. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.js +13 -0
  46. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.js.map +1 -0
  47. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.d.ts +13 -0
  48. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.js +5 -0
  49. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.js.map +1 -0
  50. package/features/workflowState/CreateWorkflowState/feature.js +2 -0
  51. package/features/workflowState/CreateWorkflowState/feature.js.map +1 -1
  52. package/features/workflowState/CreateWorkflowState/index.d.ts +1 -0
  53. package/features/workflowState/CreateWorkflowState/index.js +1 -0
  54. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js +0 -1
  55. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js.map +1 -1
  56. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.d.ts +3 -3
  57. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js +6 -5
  58. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js.map +1 -1
  59. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.d.ts +3 -3
  60. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js +6 -5
  61. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js.map +1 -1
  62. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js +0 -1
  63. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js.map +1 -1
  64. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.d.ts +3 -3
  65. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js +6 -5
  66. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js.map +1 -1
  67. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js +0 -1
  68. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js.map +1 -1
  69. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.d.ts +9 -0
  70. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.js +13 -0
  71. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.js.map +1 -0
  72. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.d.ts +3 -3
  73. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js +7 -6
  74. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js.map +1 -1
  75. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.d.ts +3 -1
  76. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js +38 -8
  77. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js.map +1 -1
  78. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.d.ts +8 -0
  79. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.js +5 -0
  80. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.js.map +1 -0
  81. package/features/workflowState/ListWorkflowStates/feature.js +2 -0
  82. package/features/workflowState/ListWorkflowStates/feature.js.map +1 -1
  83. package/features/workflowState/ListWorkflowStates/index.d.ts +1 -0
  84. package/features/workflowState/ListWorkflowStates/index.js +1 -0
  85. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.d.ts +3 -3
  86. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js +7 -6
  87. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js.map +1 -1
  88. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js +0 -1
  89. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js.map +1 -1
  90. package/graphql/notifications.d.ts +2 -2
  91. package/graphql/notifications.js +44 -43
  92. package/graphql/notifications.js.map +1 -1
  93. package/graphql/validation/listWorkflowStates.d.ts +1 -1
  94. package/graphql/validation/listWorkflows.d.ts +1 -1
  95. package/graphql/workflowState.d.ts +2 -2
  96. package/graphql/workflowState.js +378 -306
  97. package/graphql/workflowState.js.map +1 -1
  98. package/graphql/workflows.d.ts +2 -2
  99. package/graphql/workflows.js +200 -178
  100. package/graphql/workflows.js.map +1 -1
  101. package/index.d.ts +1 -2
  102. package/index.js +1 -97
  103. package/package.json +15 -15
  104. package/index.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const WorkflowStateContextProvider = createAbstraction("WorkflowStateContextProvider");
3
+ export { WorkflowStateContextProvider };
4
+
5
+ //# sourceMappingURL=WorkflowStateContextProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface IWorkflowStateContextProviderParams {\n app: string;\n targetRevisionId: string;\n}\n\nexport interface IWorkflowStateContextProvider {\n provide(params: IWorkflowStateContextProviderParams): Promise<GenericRecord>;\n}\n\nexport const WorkflowStateContextProvider = createAbstraction<IWorkflowStateContextProvider>(\n \"WorkflowStateContextProvider\"\n);\n\nexport namespace WorkflowStateContextProvider {\n export type Interface = IWorkflowStateContextProvider;\n export type Params = IWorkflowStateContextProviderParams;\n}\n"],"names":["WorkflowStateContextProvider","createAbstraction"],"mappings":";AAYO,MAAMA,+BAA+BC,kBACxC"}
@@ -1,10 +1,12 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { CreateWorkflowStateUseCase } from "./CreateWorkflowStateUseCase.js";
3
3
  import { CreateWorkflowStateRepository } from "./CreateWorkflowStateRepository.js";
4
+ import { DefaultContextProvider } from "./DefaultWorkflowStateContextProvider.js";
4
5
  const CreateWorkflowStateFeature = createFeature({
5
6
  name: "WorkflowState/CreateWorkflowState",
6
7
  register (container) {
7
8
  container.register(CreateWorkflowStateRepository).inSingletonScope();
9
+ container.register(DefaultContextProvider);
8
10
  container.register(CreateWorkflowStateUseCase);
9
11
  }
10
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflowState/CreateWorkflowState/feature.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateWorkflowStateUseCase } from \"./CreateWorkflowStateUseCase.js\";\nimport { CreateWorkflowStateRepository } from \"./CreateWorkflowStateRepository.js\";\n\nexport const CreateWorkflowStateFeature = createFeature({\n name: \"WorkflowState/CreateWorkflowState\",\n register(container) {\n container.register(CreateWorkflowStateRepository).inSingletonScope();\n container.register(CreateWorkflowStateUseCase);\n }\n});\n"],"names":["CreateWorkflowStateFeature","createFeature","container","CreateWorkflowStateRepository","CreateWorkflowStateUseCase"],"mappings":";;;AAIO,MAAMA,6BAA6BC,cAAc;IACpD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,+BAA+B,gBAAgB;QAClED,UAAU,QAAQ,CAACE;IACvB;AACJ"}
1
+ {"version":3,"file":"features/workflowState/CreateWorkflowState/feature.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateWorkflowStateUseCase } from \"./CreateWorkflowStateUseCase.js\";\nimport { CreateWorkflowStateRepository } from \"./CreateWorkflowStateRepository.js\";\nimport { DefaultContextProvider } from \"./DefaultWorkflowStateContextProvider.js\";\n\nexport const CreateWorkflowStateFeature = createFeature({\n name: \"WorkflowState/CreateWorkflowState\",\n register(container) {\n container.register(CreateWorkflowStateRepository).inSingletonScope();\n container.register(DefaultContextProvider);\n container.register(CreateWorkflowStateUseCase);\n }\n});\n"],"names":["CreateWorkflowStateFeature","createFeature","container","CreateWorkflowStateRepository","DefaultContextProvider","CreateWorkflowStateUseCase"],"mappings":";;;;AAKO,MAAMA,6BAA6BC,cAAc;IACpD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,+BAA+B,gBAAgB;QAClED,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;IACvB;AACJ"}
@@ -1,2 +1,3 @@
1
1
  export { CreateWorkflowStateUseCase, CreateWorkflowStateRepository } from "./abstractions.js";
2
2
  export { WorkflowStateAfterCreateHandler } from "./events.js";
3
+ export { WorkflowStateContextProvider } from "./WorkflowStateContextProvider.js";
@@ -1,2 +1,3 @@
1
1
  export { CreateWorkflowStateRepository, CreateWorkflowStateUseCase } from "./abstractions.js";
2
2
  export { WorkflowStateAfterCreateHandler } from "./events.js";
3
+ export { WorkflowStateContextProvider } from "./WorkflowStateContextProvider.js";
@@ -37,7 +37,6 @@ 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);
41
40
  const teams = teamsResult.value;
42
41
  const state = new WorkflowState(record, teams, identity);
43
42
  await this.eventPublisher.publish(new WorkflowStateAfterDeleteEvent({
@@ -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 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
+ {"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,MAAME,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 { WorkflowStateModel } from "../../../domain/workflowState/abstractions.js";
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 model;
7
- constructor(deleteEntry: DeleteEntryUseCase.Interface, model: WorkflowStateModel.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 { WorkflowStateModel } from "../../../domain/workflowState/abstractions.js";
3
+ import { WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
4
4
  import { DeleteWorkflowStateRepository } from "./abstractions.js";
5
5
  class DeleteWorkflowStateRepositoryImpl {
6
- constructor(deleteEntry, model){
6
+ constructor(deleteEntry, modelProvider){
7
7
  this.deleteEntry = deleteEntry;
8
- this.model = model;
8
+ this.modelProvider = modelProvider;
9
9
  }
10
10
  async execute(id) {
11
- await this.deleteEntry.execute(this.model, id);
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
- WorkflowStateModel
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 { WorkflowStateModel } 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 model: WorkflowStateModel.Interface\n ) {}\n\n async execute(id: string): Repository.Return {\n await this.deleteEntry.execute(this.model, id);\n\n return Result.ok();\n }\n}\n\nexport const DeleteWorkflowStateRepository = Repository.createImplementation({\n implementation: DeleteWorkflowStateRepositoryImpl,\n dependencies: [DeleteEntryUseCase, WorkflowStateModel]\n});\n"],"names":["DeleteWorkflowStateRepositoryImpl","deleteEntry","model","id","Result","DeleteWorkflowStateRepository","Repository","DeleteEntryUseCase","WorkflowStateModel"],"mappings":";;;;AAKA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAAmC,CAC7C;aAFUD,WAAW,GAAXA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAqB;QACzC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAEA;QAE3C,OAAOC,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMC,8DAAgCC,8BAAAA,oBAA+B,CAAC;IACzE,gBAAgBN;IAChB,cAAc;QAACO;QAAoBC;KAAmB;AAC1D"}
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 { WorkflowStateModel, WorkflowStateMapper } from "../../../domain/workflowState/abstractions.js";
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 model;
6
+ private modelProvider;
7
7
  private mapper;
8
- constructor(listEntries: ListLatestEntriesUseCase.Interface, model: WorkflowStateModel.Interface, mapper: WorkflowStateMapper.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, WorkflowStateModel } from "../../../domain/workflowState/abstractions.js";
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, model, mapper){
7
+ constructor(listEntries, modelProvider, mapper){
8
8
  this.listEntries = listEntries;
9
- this.model = model;
9
+ this.modelProvider = modelProvider;
10
10
  this.mapper = mapper;
11
11
  }
12
12
  async execute(input) {
13
- const listResult = await this.listEntries.execute(this.model, {
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
- WorkflowStateModel,
43
+ WorkflowStateModelProvider,
43
44
  WorkflowStateMapper
44
45
  ]
45
46
  });
@@ -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 { WorkflowStateModel, WorkflowStateMapper } 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 model: WorkflowStateModel.Interface,\n private mapper: WorkflowStateMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const listResult = await this.listEntries.execute<Omit<IWorkflowStateRecord, \"id\">>(\n this.model,\n {\n where: {\n values: {\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n isActive: true\n }\n },\n limit: 1\n }\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, WorkflowStateModel, WorkflowStateMapper]\n});\n"],"names":["GetTargetWorkflowStateRepositoryImpl","listEntries","model","mapper","input","listResult","Result","WorkflowStatePersistenceError","entries","meta","WorkflowStateNotFoundError","MultipleWorkflowsFoundError","record","GetTargetWorkflowStateRepository","Repository","ListLatestEntriesUseCase","WorkflowStateModel","WorkflowStateMapper"],"mappings":";;;;;AAWA,MAAMA;IACF,YACYC,WAA+C,EAC/CC,KAAmC,EACnCC,MAAqC,CAC/C;aAHUF,WAAW,GAAXA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,aAAa,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAC7C,IAAI,CAAC,KAAK,EACV;YACI,OAAO;gBACH,QAAQ;oBACJ,KAAKD,MAAM,GAAG;oBACd,kBAAkBA,MAAM,gBAAgB;oBACxC,UAAU;gBACd;YACJ;YACA,OAAO;QACX;QAGJ,IAAIC,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,KAAKN,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;QAC5C;QAIR,IAAIK,KAAK,UAAU,GAAG,GAClB,OAAOH,OAAO,IAAI,CACd,IAAIK,4BAA4B;YAC5B,KAAKP,MAAM,GAAG;YACd,kBAAkBA,MAAM,gBAAgB;YACxC,OAAOI;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,gBAAgBd;IAChB,cAAc;QAACe;QAA0BC;QAAoBC;KAAoB;AACrF"}
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,7 +19,6 @@ 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);
23
22
  const teams = teamsResult.value;
24
23
  const workflowState = new WorkflowState(record, teams, identity);
25
24
  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 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
+ {"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,MAAME,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 { WorkflowStateModel, WorkflowStateMapper } from "../../../domain/workflowState/abstractions.js";
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 model;
6
+ private modelProvider;
7
7
  private mapper;
8
- constructor(getEntryById: GetEntryByIdUseCase.Interface, model: WorkflowStateModel.Interface, mapper: WorkflowStateMapper.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, WorkflowStateModel } from "../../../domain/workflowState/abstractions.js";
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, model, mapper){
7
+ constructor(getEntryById, modelProvider, mapper){
8
8
  this.getEntryById = getEntryById;
9
- this.model = model;
9
+ this.modelProvider = modelProvider;
10
10
  this.mapper = mapper;
11
11
  }
12
12
  async execute(id) {
13
- const entryResult = await this.getEntryById.execute(this.model, id);
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
- WorkflowStateModel,
30
+ WorkflowStateModelProvider,
30
31
  WorkflowStateMapper
31
32
  ]
32
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport { WorkflowStateModel, WorkflowStateMapper } from \"~/domain/workflowState/abstractions.js\";\nimport type { IWorkflowStateRecord } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateNotFoundError,\n WorkflowStatePersistenceError\n} from \"~/domain/workflowState/errors.js\";\nimport { GetWorkflowStateRepository as Repository } from \"./abstractions.js\";\n\nclass GetWorkflowStateRepositoryImpl implements Repository.Interface {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private model: WorkflowStateModel.Interface,\n private mapper: WorkflowStateMapper.Interface\n ) {}\n\n async execute(id: string): Repository.Return {\n const entryResult = await this.getEntryById.execute<Omit<IWorkflowStateRecord, \"id\">>(\n this.model,\n id\n );\n\n if (entryResult.isFail()) {\n if (entryResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new WorkflowStateNotFoundError({ id }));\n }\n\n return Result.fail(new WorkflowStatePersistenceError(entryResult.error));\n }\n\n const entry = entryResult.value;\n\n const record = this.mapper.fromCmsEntry(entry);\n return Result.ok(record);\n }\n}\n\nexport const GetWorkflowStateRepository = Repository.createImplementation({\n implementation: GetWorkflowStateRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, WorkflowStateModel, WorkflowStateMapper]\n});\n"],"names":["GetWorkflowStateRepositoryImpl","getEntryById","model","mapper","id","entryResult","Result","WorkflowStateNotFoundError","WorkflowStatePersistenceError","entry","record","GetWorkflowStateRepository","Repository","GetEntryByIdUseCase","WorkflowStateModel","WorkflowStateMapper"],"mappings":";;;;;AAUA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,KAAmC,EACnCC,MAAqC,CAC/C;aAHUF,YAAY,GAAZA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAqB;QACzC,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAC/C,IAAI,CAAC,KAAK,EACVD;QAGJ,IAAIC,YAAY,MAAM,IAAI;YACtB,IAAIA,AAA2B,yBAA3BA,YAAY,KAAK,CAAC,IAAI,EACtB,OAAOC,OAAO,IAAI,CAAC,IAAIC,2BAA2B;gBAAEH;YAAG;YAG3D,OAAOE,OAAO,IAAI,CAAC,IAAIE,8BAA8BH,YAAY,KAAK;QAC1E;QAEA,MAAMI,QAAQJ,YAAY,KAAK;QAE/B,MAAMK,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACD;QACxC,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAMC,wDAA6BC,2BAAAA,oBAA+B,CAAC;IACtE,gBAAgBZ;IAChB,cAAc;QAACa;QAAqBC;QAAoBC;KAAoB;AAChF"}
1
+ {"version":3,"file":"features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\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} from \"~/domain/workflowState/errors.js\";\nimport { GetWorkflowStateRepository as Repository } from \"./abstractions.js\";\n\nclass GetWorkflowStateRepositoryImpl implements Repository.Interface {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private modelProvider: WorkflowStateModelProvider.Interface,\n private mapper: WorkflowStateMapper.Interface\n ) {}\n\n async execute(id: string): Repository.Return {\n const model = await this.modelProvider.get();\n const entryResult = await this.getEntryById.execute<Omit<IWorkflowStateRecord, \"id\">>(\n model,\n id\n );\n\n if (entryResult.isFail()) {\n if (entryResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new WorkflowStateNotFoundError({ id }));\n }\n\n return Result.fail(new WorkflowStatePersistenceError(entryResult.error));\n }\n\n const entry = entryResult.value;\n\n const record = this.mapper.fromCmsEntry(entry);\n return Result.ok(record);\n }\n}\n\nexport const GetWorkflowStateRepository = Repository.createImplementation({\n implementation: GetWorkflowStateRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, WorkflowStateModelProvider, WorkflowStateMapper]\n});\n"],"names":["GetWorkflowStateRepositoryImpl","getEntryById","modelProvider","mapper","id","model","entryResult","Result","WorkflowStateNotFoundError","WorkflowStatePersistenceError","entry","record","GetWorkflowStateRepository","Repository","GetEntryByIdUseCase","WorkflowStateModelProvider","WorkflowStateMapper"],"mappings":";;;;;AAaA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,aAAmD,EACnDC,MAAqC,CAC/C;aAHUF,YAAY,GAAZA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAqB;QACzC,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAC/CD,OACAD;QAGJ,IAAIE,YAAY,MAAM,IAAI;YACtB,IAAIA,AAA2B,yBAA3BA,YAAY,KAAK,CAAC,IAAI,EACtB,OAAOC,OAAO,IAAI,CAAC,IAAIC,2BAA2B;gBAAEJ;YAAG;YAG3D,OAAOG,OAAO,IAAI,CAAC,IAAIE,8BAA8BH,YAAY,KAAK;QAC1E;QAEA,MAAMI,QAAQJ,YAAY,KAAK;QAE/B,MAAMK,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACD;QACxC,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAMC,wDAA6BC,2BAAAA,oBAA+B,CAAC;IACtE,gBAAgBb;IAChB,cAAc;QAACc;QAAqBC;QAA4BC;KAAoB;AACxF"}
@@ -15,7 +15,6 @@ class GetWorkflowStateUseCaseImpl {
15
15
  const record = recordResult.value;
16
16
  const identity = this.identityContext.getIdentity();
17
17
  const teamsResult = await this.getUserTeams.execute(identity.id);
18
- if (teamsResult.isFail()) return Result.fail(teamsResult.error);
19
18
  const teams = teamsResult.value;
20
19
  const workflowState = new WorkflowState(record, teams, identity);
21
20
  return Result.ok(workflowState);
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.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 { GetWorkflowStateRepository, GetWorkflowStateUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\n\nclass GetWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private repository: GetWorkflowStateRepository.Interface\n ) {}\n\n async execute(id: string): UseCase.Return {\n const recordResult = await this.repository.execute(id);\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 GetWorkflowStateUseCase = UseCase.createImplementation({\n implementation: GetWorkflowStateUseCaseImpl,\n dependencies: [IdentityContext, GetUserTeamsUseCase, GetWorkflowStateRepository]\n});\n"],"names":["GetWorkflowStateUseCaseImpl","identityContext","getUserTeams","repository","id","recordResult","Result","record","identity","teamsResult","teams","workflowState","WorkflowState","GetWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","GetWorkflowStateRepository"],"mappings":";;;;;AAMA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,UAAgD,CAC1D;aAHUF,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAkB;QACtC,MAAMC,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACD;QAEnD,IAAIC,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAACD,aAAa,KAAK;QAGzC,MAAME,SAASF,aAAa,KAAK;QAEjC,MAAMG,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAEjD,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,SAAS,EAAE;QAC/D,IAAIC,YAAY,MAAM,IAClB,OAAOH,OAAO,IAAI,CAACG,YAAY,KAAK;QAExC,MAAMC,QAAQD,YAAY,KAAK;QAE/B,MAAME,gBAAgB,IAAIC,cAAcL,QAAQG,OAAOF;QAEvD,OAAOF,OAAO,EAAE,CAACK;IACrB;AACJ;AAEO,MAAME,kDAA0BC,wBAAAA,oBAA4B,CAAC;IAChE,gBAAgBd;IAChB,cAAc;QAACe;QAAiBC;QAAqBC;KAA2B;AACpF"}
1
+ {"version":3,"file":"features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.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 { GetWorkflowStateRepository, GetWorkflowStateUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\n\nclass GetWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private repository: GetWorkflowStateRepository.Interface\n ) {}\n\n async execute(id: string): UseCase.Return {\n const recordResult = await this.repository.execute(id);\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 GetWorkflowStateUseCase = UseCase.createImplementation({\n implementation: GetWorkflowStateUseCaseImpl,\n dependencies: [IdentityContext, GetUserTeamsUseCase, GetWorkflowStateRepository]\n});\n"],"names":["GetWorkflowStateUseCaseImpl","identityContext","getUserTeams","repository","id","recordResult","Result","record","identity","teamsResult","teams","workflowState","WorkflowState","GetWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","GetWorkflowStateRepository"],"mappings":";;;;;AAMA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,UAAgD,CAC1D;aAHUF,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAkB;QACtC,MAAMC,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACD;QAEnD,IAAIC,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAACD,aAAa,KAAK;QAGzC,MAAME,SAASF,aAAa,KAAK;QAEjC,MAAMG,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAEjD,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,SAAS,EAAE;QAC/D,MAAME,QAAQD,YAAY,KAAK;QAE/B,MAAME,gBAAgB,IAAIC,cAAcL,QAAQG,OAAOF;QAEvD,OAAOF,OAAO,EAAE,CAACK;IACrB;AACJ;AAEO,MAAME,kDAA0BC,wBAAAA,oBAA4B,CAAC;IAChE,gBAAgBd;IAChB,cAAc;QAACe;QAAiBC;QAAqBC;KAA2B;AACpF"}
@@ -0,0 +1,9 @@
1
+ import { WorkflowStateFilter } from "./WorkflowStateFilter.js";
2
+ import type { WorkflowState } from "../../../domain/workflowState/WorkflowState.js";
3
+ declare class PassThroughWorkflowStateFilter implements WorkflowStateFilter.Interface {
4
+ filter(items: WorkflowState[]): Promise<WorkflowState[]>;
5
+ }
6
+ export declare const DefaultWorkflowStateFilter: typeof PassThroughWorkflowStateFilter & {
7
+ __abstraction: import("@webiny/di").Abstraction<import("./WorkflowStateFilter.js").IWorkflowStateFilter>;
8
+ };
9
+ export {};
@@ -0,0 +1,13 @@
1
+ import { WorkflowStateFilter } from "./WorkflowStateFilter.js";
2
+ class PassThroughWorkflowStateFilter {
3
+ async filter(items) {
4
+ return items;
5
+ }
6
+ }
7
+ const DefaultWorkflowStateFilter = WorkflowStateFilter.createImplementation({
8
+ implementation: PassThroughWorkflowStateFilter,
9
+ dependencies: []
10
+ });
11
+ export { DefaultWorkflowStateFilter };
12
+
13
+ //# sourceMappingURL=DefaultWorkflowStateFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.js","sources":["../../../../src/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.ts"],"sourcesContent":["import { WorkflowStateFilter } from \"./WorkflowStateFilter.js\";\nimport type { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\n\nclass PassThroughWorkflowStateFilter implements WorkflowStateFilter.Interface {\n async filter(items: WorkflowState[]): Promise<WorkflowState[]> {\n return items;\n }\n}\n\nexport const DefaultWorkflowStateFilter = WorkflowStateFilter.createImplementation({\n implementation: PassThroughWorkflowStateFilter,\n dependencies: []\n});\n"],"names":["PassThroughWorkflowStateFilter","items","DefaultWorkflowStateFilter","WorkflowStateFilter"],"mappings":";AAGA,MAAMA;IACF,MAAM,OAAOC,KAAsB,EAA4B;QAC3D,OAAOA;IACX;AACJ;AAEO,MAAMC,6BAA6BC,oBAAoB,oBAAoB,CAAC;IAC/E,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
@@ -1,13 +1,13 @@
1
1
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
2
- import { WorkflowStateMapper, WorkflowStateModel } from "../../../domain/workflowState/abstractions.js";
2
+ import { WorkflowStateMapper, WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
3
3
  import { ListWorkflowStatesRepository as Repository } from "./abstractions.js";
4
4
  import { CmsWhereMapper } from "@webiny/api-headless-cms";
5
5
  declare class ListWorkflowStatesRepositoryImpl implements Repository.Interface {
6
6
  private listEntries;
7
- private model;
7
+ private modelProvider;
8
8
  private mapper;
9
9
  private cmsWhereMapper;
10
- constructor(listEntries: ListLatestEntriesUseCase.Interface, model: WorkflowStateModel.Interface, mapper: WorkflowStateMapper.Interface, cmsWhereMapper: CmsWhereMapper.Interface);
10
+ constructor(listEntries: ListLatestEntriesUseCase.Interface, modelProvider: WorkflowStateModelProvider.Interface, mapper: WorkflowStateMapper.Interface, cmsWhereMapper: CmsWhereMapper.Interface);
11
11
  execute(params?: Repository.Params): Repository.Return;
12
12
  }
13
13
  export declare const ListWorkflowStatesRepository: typeof ListWorkflowStatesRepositoryImpl & {
@@ -1,18 +1,19 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
3
- import { WorkflowStateMapper, WorkflowStateModel } from "../../../domain/workflowState/abstractions.js";
3
+ import { WorkflowStateMapper, WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
4
4
  import { WorkflowStatePersistenceError } from "../../../domain/workflowState/errors.js";
5
5
  import { ListWorkflowStatesRepository } from "./abstractions.js";
6
6
  import { CmsWhereMapper } from "@webiny/api-headless-cms";
7
7
  class ListWorkflowStatesRepositoryImpl {
8
- constructor(listEntries, model, mapper, cmsWhereMapper){
8
+ constructor(listEntries, modelProvider, mapper, cmsWhereMapper){
9
9
  this.listEntries = listEntries;
10
- this.model = model;
10
+ this.modelProvider = modelProvider;
11
11
  this.mapper = mapper;
12
12
  this.cmsWhereMapper = cmsWhereMapper;
13
13
  }
14
14
  async execute(params = {}) {
15
- const listResult = await this.listEntries.execute(this.model, {
15
+ const model = await this.modelProvider.get();
16
+ const listResult = await this.listEntries.execute(model, {
16
17
  limit: 50,
17
18
  sort: [
18
19
  "createdOn_DESC"
@@ -20,7 +21,7 @@ class ListWorkflowStatesRepositoryImpl {
20
21
  ...params,
21
22
  where: this.cmsWhereMapper.map({
22
23
  input: params.where,
23
- fields: this.model.fields
24
+ fields: model.fields
24
25
  })
25
26
  });
26
27
  if (listResult.isFail()) return Result.fail(new WorkflowStatePersistenceError(listResult.error));
@@ -36,7 +37,7 @@ const ListWorkflowStatesRepository_ListWorkflowStatesRepository = ListWorkflowSt
36
37
  implementation: ListWorkflowStatesRepositoryImpl,
37
38
  dependencies: [
38
39
  ListLatestEntriesUseCase,
39
- WorkflowStateModel,
40
+ WorkflowStateModelProvider,
40
41
  WorkflowStateMapper,
41
42
  CmsWhereMapper
42
43
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js","sources":["../../../../src/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport type { IWorkflowStateRecord } from \"~/domain/workflowState/abstractions.js\";\nimport { WorkflowStateMapper, WorkflowStateModel } from \"~/domain/workflowState/abstractions.js\";\nimport { WorkflowStatePersistenceError } from \"~/domain/workflowState/errors.js\";\nimport { ListWorkflowStatesRepository as Repository } from \"./abstractions.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListWorkflowStatesRepositoryImpl implements Repository.Interface {\n constructor(\n private listEntries: ListLatestEntriesUseCase.Interface,\n private model: WorkflowStateModel.Interface,\n private mapper: WorkflowStateMapper.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface\n ) {}\n\n async execute(params: Repository.Params = {}): Repository.Return {\n const listResult = await this.listEntries.execute<Omit<IWorkflowStateRecord, \"id\">>(\n this.model,\n {\n limit: 50,\n sort: [\"createdOn_DESC\"],\n ...params,\n where: this.cmsWhereMapper.map({\n input: params.where,\n fields: this.model.fields\n })\n }\n );\n\n if (listResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(listResult.error));\n }\n\n const { entries, meta } = listResult.value;\n\n const records = entries.map(item => this.mapper.fromCmsEntry(item));\n\n return Result.ok({\n items: records,\n meta\n });\n }\n}\n\nexport const ListWorkflowStatesRepository = Repository.createImplementation({\n implementation: ListWorkflowStatesRepositoryImpl,\n dependencies: [\n ListLatestEntriesUseCase,\n WorkflowStateModel,\n WorkflowStateMapper,\n CmsWhereMapper\n ]\n});\n"],"names":["ListWorkflowStatesRepositoryImpl","listEntries","model","mapper","cmsWhereMapper","params","listResult","Result","WorkflowStatePersistenceError","entries","meta","records","item","ListWorkflowStatesRepository","Repository","ListLatestEntriesUseCase","WorkflowStateModel","WorkflowStateMapper","CmsWhereMapper"],"mappings":";;;;;;AAQA,MAAMA;IACF,YACYC,WAA+C,EAC/CC,KAAmC,EACnCC,MAAqC,EACrCC,cAAwC,CAClD;aAJUH,WAAW,GAAXA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,SAA4B,CAAC,CAAC,EAAqB;QAC7D,MAAMC,aAAa,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAC7C,IAAI,CAAC,KAAK,EACV;YACI,OAAO;YACP,MAAM;gBAAC;aAAiB;YACxB,GAAGD,MAAM;YACT,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC3B,OAAOA,OAAO,KAAK;gBACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B;QACJ;QAGJ,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,8BAA8BF,WAAW,KAAK;QAGzE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,WAAW,KAAK;QAE1C,MAAMK,UAAUF,QAAQ,GAAG,CAACG,CAAAA,OAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,CAACA;QAE7D,OAAOL,OAAO,EAAE,CAAC;YACb,OAAOI;YACPD;QACJ;IACJ;AACJ;AAEO,MAAMG,4DAA+BC,6BAAAA,oBAA+B,CAAC;IACxE,gBAAgBd;IAChB,cAAc;QACVe;QACAC;QACAC;QACAC;KACH;AACL"}
1
+ {"version":3,"file":"features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js","sources":["../../../../src/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport type { IWorkflowStateRecord } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateMapper,\n WorkflowStateModelProvider\n} from \"~/domain/workflowState/abstractions.js\";\nimport { WorkflowStatePersistenceError } from \"~/domain/workflowState/errors.js\";\nimport { ListWorkflowStatesRepository as Repository } from \"./abstractions.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListWorkflowStatesRepositoryImpl implements Repository.Interface {\n constructor(\n private listEntries: ListLatestEntriesUseCase.Interface,\n private modelProvider: WorkflowStateModelProvider.Interface,\n private mapper: WorkflowStateMapper.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface\n ) {}\n\n async execute(params: Repository.Params = {}): Repository.Return {\n const model = await this.modelProvider.get();\n const listResult = await this.listEntries.execute<Omit<IWorkflowStateRecord, \"id\">>(model, {\n limit: 50,\n sort: [\"createdOn_DESC\"],\n ...params,\n where: this.cmsWhereMapper.map({\n input: params.where,\n fields: model.fields\n })\n });\n\n if (listResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(listResult.error));\n }\n\n const { entries, meta } = listResult.value;\n\n const records = entries.map(item => this.mapper.fromCmsEntry(item));\n\n return Result.ok({\n items: records,\n meta\n });\n }\n}\n\nexport const ListWorkflowStatesRepository = Repository.createImplementation({\n implementation: ListWorkflowStatesRepositoryImpl,\n dependencies: [\n ListLatestEntriesUseCase,\n WorkflowStateModelProvider,\n WorkflowStateMapper,\n CmsWhereMapper\n ]\n});\n"],"names":["ListWorkflowStatesRepositoryImpl","listEntries","modelProvider","mapper","cmsWhereMapper","params","model","listResult","Result","WorkflowStatePersistenceError","entries","meta","records","item","ListWorkflowStatesRepository","Repository","ListLatestEntriesUseCase","WorkflowStateModelProvider","WorkflowStateMapper","CmsWhereMapper"],"mappings":";;;;;;AAWA,MAAMA;IACF,YACYC,WAA+C,EAC/CC,aAAmD,EACnDC,MAAqC,EACrCC,cAAwC,CAClD;aAJUH,WAAW,GAAXA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,SAA4B,CAAC,CAAC,EAAqB;QAC7D,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAMC,aAAa,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAmCD,OAAO;YACvF,OAAO;YACP,MAAM;gBAAC;aAAiB;YACxB,GAAGD,MAAM;YACT,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC3B,OAAOA,OAAO,KAAK;gBACnB,QAAQC,MAAM,MAAM;YACxB;QACJ;QAEA,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,8BAA8BF,WAAW,KAAK;QAGzE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,WAAW,KAAK;QAE1C,MAAMK,UAAUF,QAAQ,GAAG,CAACG,CAAAA,OAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,CAACA;QAE7D,OAAOL,OAAO,EAAE,CAAC;YACb,OAAOI;YACPD;QACJ;IACJ;AACJ;AAEO,MAAMG,4DAA+BC,6BAAAA,oBAA+B,CAAC;IACxE,gBAAgBf;IAChB,cAAc;QACVgB;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -1,11 +1,13 @@
1
1
  import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
2
  import { GetUserTeamsUseCase } from "../../../features/internal/GetUserTeams/index.js";
3
3
  import { ListWorkflowStatesRepository, ListWorkflowStatesUseCase as UseCase } from "./abstractions.js";
4
+ import { WorkflowStateFilter } from "./WorkflowStateFilter.js";
4
5
  declare class ListWorkflowStatesUseCaseImpl implements UseCase.Interface {
5
6
  private identityContext;
6
7
  private getUserTeams;
7
8
  private repository;
8
- constructor(identityContext: IdentityContext.Interface, getUserTeams: GetUserTeamsUseCase.Interface, repository: ListWorkflowStatesRepository.Interface);
9
+ private stateFilter;
10
+ constructor(identityContext: IdentityContext.Interface, getUserTeams: GetUserTeamsUseCase.Interface, repository: ListWorkflowStatesRepository.Interface, stateFilter: WorkflowStateFilter.Interface);
9
11
  execute(params?: UseCase.Params): UseCase.Return;
10
12
  }
11
13
  export declare const ListWorkflowStatesUseCase: typeof ListWorkflowStatesUseCaseImpl & {
@@ -3,24 +3,53 @@ import { IdentityContext } from "@webiny/api-core/features/security/IdentityCont
3
3
  import { GetUserTeamsUseCase } from "../../internal/GetUserTeams/index.js";
4
4
  import { ListWorkflowStatesRepository, ListWorkflowStatesUseCase } from "./abstractions.js";
5
5
  import { WorkflowState } from "../../../domain/workflowState/WorkflowState.js";
6
+ import { WorkflowStateFilter } from "./WorkflowStateFilter.js";
6
7
  class ListWorkflowStatesUseCaseImpl {
7
- constructor(identityContext, getUserTeams, repository){
8
+ constructor(identityContext, getUserTeams, repository, stateFilter){
8
9
  this.identityContext = identityContext;
9
10
  this.getUserTeams = getUserTeams;
10
11
  this.repository = repository;
12
+ this.stateFilter = stateFilter;
11
13
  }
12
14
  async execute(params = {}) {
13
15
  const identity = this.identityContext.getIdentity();
14
16
  const teamsResult = await this.getUserTeams.execute(identity.id);
15
- if (teamsResult.isFail()) return Result.fail(teamsResult.error);
16
17
  const teams = teamsResult.value;
17
- const recordsResult = await this.repository.execute(params);
18
- if (recordsResult.isFail()) return Result.fail(recordsResult.error);
19
- const { items: records, meta } = recordsResult.value;
20
- const items = records.map((record)=>new WorkflowState(record, teams, identity));
18
+ const requestedLimit = params.limit || 50;
19
+ const accumulated = [];
20
+ let cursor = params.after || null;
21
+ let totalCount = 0;
22
+ let totalRemoved = 0;
23
+ let hasMoreItems = false;
24
+ while(accumulated.length < requestedLimit){
25
+ const recordsResult = await this.repository.execute({
26
+ ...params,
27
+ limit: requestedLimit,
28
+ after: cursor || void 0
29
+ });
30
+ if (recordsResult.isFail()) return Result.fail(recordsResult.error);
31
+ const { items: records, meta } = recordsResult.value;
32
+ totalCount = meta.totalCount;
33
+ const items = records.map((record)=>new WorkflowState(record, teams, identity));
34
+ const filtered = await this.stateFilter.filter(items);
35
+ totalRemoved += items.length - filtered.length;
36
+ accumulated.push(...filtered);
37
+ if (!meta.hasMoreItems) {
38
+ hasMoreItems = accumulated.length > requestedLimit;
39
+ cursor = null;
40
+ break;
41
+ }
42
+ cursor = meta.cursor;
43
+ hasMoreItems = true;
44
+ }
45
+ const items = accumulated.slice(0, requestedLimit);
21
46
  return Result.ok({
22
47
  items,
23
- meta
48
+ meta: {
49
+ totalCount: Math.max(0, totalCount - totalRemoved),
50
+ hasMoreItems,
51
+ cursor
52
+ }
24
53
  });
25
54
  }
26
55
  }
@@ -29,7 +58,8 @@ const ListWorkflowStatesUseCase_ListWorkflowStatesUseCase = ListWorkflowStatesUs
29
58
  dependencies: [
30
59
  IdentityContext,
31
60
  GetUserTeamsUseCase,
32
- ListWorkflowStatesRepository
61
+ ListWorkflowStatesRepository,
62
+ WorkflowStateFilter
33
63
  ]
34
64
  });
35
65
  export { ListWorkflowStatesUseCase_ListWorkflowStatesUseCase as ListWorkflowStatesUseCase };
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js","sources":["../../../../src/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.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 {\n ListWorkflowStatesRepository,\n ListWorkflowStatesUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\n\nclass ListWorkflowStatesUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private repository: ListWorkflowStatesRepository.Interface\n ) {}\n\n async execute(params: UseCase.Params = {}): UseCase.Return {\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 recordsResult = await this.repository.execute(params);\n\n if (recordsResult.isFail()) {\n return Result.fail(recordsResult.error);\n }\n\n const { items: records, meta } = recordsResult.value;\n\n const items = records.map(record => new WorkflowState(record, teams, identity));\n\n return Result.ok({\n items,\n meta\n });\n }\n}\n\nexport const ListWorkflowStatesUseCase = UseCase.createImplementation({\n implementation: ListWorkflowStatesUseCaseImpl,\n dependencies: [IdentityContext, GetUserTeamsUseCase, ListWorkflowStatesRepository]\n});\n"],"names":["ListWorkflowStatesUseCaseImpl","identityContext","getUserTeams","repository","params","identity","teamsResult","Result","teams","recordsResult","records","meta","items","record","WorkflowState","ListWorkflowStatesUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","ListWorkflowStatesRepository"],"mappings":";;;;;AASA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,UAAkD,CAC5D;aAHUF,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,SAAyB,CAAC,CAAC,EAAkB;QACvD,MAAMC,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAEjD,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,SAAS,EAAE;QAC/D,IAAIC,YAAY,MAAM,IAClB,OAAOC,OAAO,IAAI,CAACD,YAAY,KAAK;QAExC,MAAME,QAAQF,YAAY,KAAK;QAE/B,MAAMG,gBAAgB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACL;QAEpD,IAAIK,cAAc,MAAM,IACpB,OAAOF,OAAO,IAAI,CAACE,cAAc,KAAK;QAG1C,MAAM,EAAE,OAAOC,OAAO,EAAEC,IAAI,EAAE,GAAGF,cAAc,KAAK;QAEpD,MAAMG,QAAQF,QAAQ,GAAG,CAACG,CAAAA,SAAU,IAAIC,cAAcD,QAAQL,OAAOH;QAErE,OAAOE,OAAO,EAAE,CAAC;YACbK;YACAD;QACJ;IACJ;AACJ;AAEO,MAAMI,sDAA4BC,0BAAAA,oBAA4B,CAAC;IAClE,gBAAgBhB;IAChB,cAAc;QAACiB;QAAiBC;QAAqBC;KAA6B;AACtF"}
1
+ {"version":3,"file":"features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js","sources":["../../../../src/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.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 {\n ListWorkflowStatesRepository,\n ListWorkflowStatesUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateFilter } from \"./WorkflowStateFilter.js\";\n\nclass ListWorkflowStatesUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private repository: ListWorkflowStatesRepository.Interface,\n private stateFilter: WorkflowStateFilter.Interface\n ) {}\n\n async execute(params: UseCase.Params = {}): UseCase.Return {\n const identity = this.identityContext.getIdentity();\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n const teams = teamsResult.value;\n\n const requestedLimit = params.limit || 50;\n const accumulated: WorkflowState[] = [];\n let cursor: string | null = params.after || null;\n let totalCount = 0;\n let totalRemoved = 0;\n let hasMoreItems = false;\n\n while (accumulated.length < requestedLimit) {\n const recordsResult = await this.repository.execute({\n ...params,\n limit: requestedLimit,\n after: cursor || undefined\n });\n\n if (recordsResult.isFail()) {\n return Result.fail(recordsResult.error);\n }\n\n const { items: records, meta } = recordsResult.value;\n totalCount = meta.totalCount;\n\n const items = records.map(record => new WorkflowState(record, teams, identity));\n const filtered = await this.stateFilter.filter(items);\n\n totalRemoved += items.length - filtered.length;\n accumulated.push(...filtered);\n\n if (!meta.hasMoreItems) {\n hasMoreItems = accumulated.length > requestedLimit;\n cursor = null;\n break;\n }\n\n cursor = meta.cursor;\n hasMoreItems = true;\n }\n\n const items = accumulated.slice(0, requestedLimit);\n\n return Result.ok({\n items,\n meta: {\n totalCount: Math.max(0, totalCount - totalRemoved),\n hasMoreItems,\n cursor\n }\n });\n }\n}\n\nexport const ListWorkflowStatesUseCase = UseCase.createImplementation({\n implementation: ListWorkflowStatesUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n ListWorkflowStatesRepository,\n WorkflowStateFilter\n ]\n});\n"],"names":["ListWorkflowStatesUseCaseImpl","identityContext","getUserTeams","repository","stateFilter","params","identity","teamsResult","teams","requestedLimit","accumulated","cursor","totalCount","totalRemoved","hasMoreItems","recordsResult","undefined","Result","records","meta","items","record","WorkflowState","filtered","Math","ListWorkflowStatesUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","ListWorkflowStatesRepository","WorkflowStateFilter"],"mappings":";;;;;;AAUA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,YAA2C,EAC3CC,UAAkD,EAClDC,WAA0C,CACpD;aAJUH,eAAe,GAAfA;aACAC,YAAY,GAAZA;aACAC,UAAU,GAAVA;aACAC,WAAW,GAAXA;IACT;IAEH,MAAM,QAAQC,SAAyB,CAAC,CAAC,EAAkB;QACvD,MAAMC,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QAEjD,MAAMC,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,SAAS,EAAE;QAC/D,MAAME,QAAQD,YAAY,KAAK;QAE/B,MAAME,iBAAiBJ,OAAO,KAAK,IAAI;QACvC,MAAMK,cAA+B,EAAE;QACvC,IAAIC,SAAwBN,OAAO,KAAK,IAAI;QAC5C,IAAIO,aAAa;QACjB,IAAIC,eAAe;QACnB,IAAIC,eAAe;QAEnB,MAAOJ,YAAY,MAAM,GAAGD,eAAgB;YACxC,MAAMM,gBAAgB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAChD,GAAGV,MAAM;gBACT,OAAOI;gBACP,OAAOE,UAAUK;YACrB;YAEA,IAAID,cAAc,MAAM,IACpB,OAAOE,OAAO,IAAI,CAACF,cAAc,KAAK;YAG1C,MAAM,EAAE,OAAOG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,cAAc,KAAK;YACpDH,aAAaO,KAAK,UAAU;YAE5B,MAAMC,QAAQF,QAAQ,GAAG,CAACG,CAAAA,SAAU,IAAIC,cAAcD,QAAQb,OAAOF;YACrE,MAAMiB,WAAW,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAACH;YAE/CP,gBAAgBO,MAAM,MAAM,GAAGG,SAAS,MAAM;YAC9Cb,YAAY,IAAI,IAAIa;YAEpB,IAAI,CAACJ,KAAK,YAAY,EAAE;gBACpBL,eAAeJ,YAAY,MAAM,GAAGD;gBACpCE,SAAS;gBACT;YACJ;YAEAA,SAASQ,KAAK,MAAM;YACpBL,eAAe;QACnB;QAEA,MAAMM,QAAQV,YAAY,KAAK,CAAC,GAAGD;QAEnC,OAAOQ,OAAO,EAAE,CAAC;YACbG;YACA,MAAM;gBACF,YAAYI,KAAK,GAAG,CAAC,GAAGZ,aAAaC;gBACrCC;gBACAH;YACJ;QACJ;IACJ;AACJ;AAEO,MAAMc,sDAA4BC,0BAAAA,oBAA4B,CAAC;IAClE,gBAAgB1B;IAChB,cAAc;QACV2B;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,8 @@
1
+ import type { WorkflowState } from "../../../domain/workflowState/WorkflowState.js";
2
+ export interface IWorkflowStateFilter {
3
+ filter(items: WorkflowState[]): Promise<WorkflowState[]>;
4
+ }
5
+ export declare const WorkflowStateFilter: import("@webiny/di").Abstraction<IWorkflowStateFilter>;
6
+ export declare namespace WorkflowStateFilter {
7
+ type Interface = IWorkflowStateFilter;
8
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const WorkflowStateFilter = createAbstraction("WorkflowStateFilter");
3
+ export { WorkflowStateFilter };
4
+
5
+ //# sourceMappingURL=WorkflowStateFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflowState/ListWorkflowStates/WorkflowStateFilter.js","sources":["../../../../src/features/workflowState/ListWorkflowStates/WorkflowStateFilter.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\n\nexport interface IWorkflowStateFilter {\n filter(items: WorkflowState[]): Promise<WorkflowState[]>;\n}\n\nexport const WorkflowStateFilter = createAbstraction<IWorkflowStateFilter>(\"WorkflowStateFilter\");\n\nexport namespace WorkflowStateFilter {\n export type Interface = IWorkflowStateFilter;\n}\n"],"names":["WorkflowStateFilter","createAbstraction"],"mappings":";AAOO,MAAMA,sBAAsBC,kBAAwC"}