@webiny/api-aco 0.0.0-unstable.a4f3e4ea8b → 0.0.0-unstable.a85ef555b2
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/AcoFeature.d.ts +5 -0
- package/AcoFeature.js +134 -0
- package/AcoFeature.js.map +1 -0
- package/AcoFolderSchemaFactory.d.ts +32 -0
- package/AcoFolderSchemaFactory.js +82 -0
- package/AcoFolderSchemaFactory.js.map +1 -0
- package/createAcoGraphQL.d.ts +8 -4
- package/createAcoGraphQL.js +56 -96
- package/createAcoGraphQL.js.map +1 -1
- package/domain/folder/abstractions.d.ts +12 -5
- package/domain/folder/abstractions.js +2 -2
- package/domain/folder/abstractions.js.map +1 -1
- package/domain/folder/folder.model.js +2 -1
- package/domain/folder/folder.model.js.map +1 -1
- package/exports/api/aco/flp.d.ts +1 -0
- package/exports/api/aco/flp.js +1 -0
- package/features/ai/CreateFolderTool.d.ts +49 -0
- package/features/ai/CreateFolderTool.js +58 -0
- package/features/ai/CreateFolderTool.js.map +1 -0
- package/features/ai/CreateTeamTool.d.ts +48 -0
- package/features/ai/CreateTeamTool.js +56 -0
- package/features/ai/CreateTeamTool.js.map +1 -0
- package/features/ai/DeleteFolderTool.d.ts +48 -0
- package/features/ai/DeleteFolderTool.js +55 -0
- package/features/ai/DeleteFolderTool.js.map +1 -0
- package/features/ai/GrantFolderAccessTool.d.ts +77 -0
- package/features/ai/GrantFolderAccessTool.js +80 -0
- package/features/ai/GrantFolderAccessTool.js.map +1 -0
- package/features/ai/ListFoldersTool.d.ts +47 -0
- package/features/ai/ListFoldersTool.js +57 -0
- package/features/ai/ListFoldersTool.js.map +1 -0
- package/features/ai/ListRolesTool.d.ts +39 -0
- package/features/ai/ListRolesTool.js +48 -0
- package/features/ai/ListRolesTool.js.map +1 -0
- package/features/ai/ListTeamsTool.d.ts +39 -0
- package/features/ai/ListTeamsTool.js +48 -0
- package/features/ai/ListTeamsTool.js.map +1 -0
- package/features/ai/RevokeFolderAccessTool.d.ts +63 -0
- package/features/ai/RevokeFolderAccessTool.js +69 -0
- package/features/ai/RevokeFolderAccessTool.js.map +1 -0
- package/features/ai/assertTargetIsUsable.d.ts +10 -0
- package/features/ai/assertTargetIsUsable.js +14 -0
- package/features/ai/assertTargetIsUsable.js.map +1 -0
- package/features/ai/feature.d.ts +12 -0
- package/features/ai/feature.js +25 -0
- package/features/ai/feature.js.map +1 -0
- package/features/ai/index.d.ts +9 -0
- package/features/ai/index.js +9 -0
- package/features/ai/loadFolderPermissions.d.ts +16 -0
- package/features/ai/loadFolderPermissions.js +14 -0
- package/features/ai/loadFolderPermissions.js.map +1 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +3 -3
- package/features/flp/CreateFlp/CreateFlpUseCase.js +4 -4
- package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -1
- package/features/flp/CreateFlp/feature.d.ts +1 -6
- package/features/flp/CreateFlp/feature.js +3 -2
- package/features/flp/CreateFlp/feature.js.map +1 -1
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +8 -5
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +21 -14
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -1
- package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +3 -3
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js +3 -3
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -1
- package/features/flp/DeleteFlp/feature.d.ts +1 -6
- package/features/flp/DeleteFlp/feature.js +3 -2
- package/features/flp/DeleteFlp/feature.js.map +1 -1
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +6 -5
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +16 -13
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -1
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +4 -3
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +14 -13
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +6 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +6 -2
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.d.ts +13 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js +26 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js.map +1 -0
- package/features/flp/GetFlp/feature.d.ts +1 -1
- package/features/flp/GetFlp/feature.js +3 -2
- package/features/flp/GetFlp/feature.js.map +1 -1
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.d.ts +13 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js +27 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js.map +1 -0
- package/features/flp/ListFlps/feature.d.ts +1 -1
- package/features/flp/ListFlps/feature.js +3 -2
- package/features/flp/ListFlps/feature.js.map +1 -1
- package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +15 -8
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js +37 -42
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -1
- package/features/flp/UpdateFlp/abstractions.d.ts +6 -2
- package/features/flp/UpdateFlp/abstractions.js.map +1 -1
- package/features/flp/UpdateFlp/feature.d.ts +1 -6
- package/features/flp/UpdateFlp/feature.js +7 -2
- package/features/flp/UpdateFlp/feature.js.map +1 -1
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +8 -5
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +21 -16
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -1
- package/features/flp/shared/CodeFlpMerger.d.ts +26 -0
- package/features/flp/shared/CodeFlpMerger.js +20 -0
- package/features/flp/shared/CodeFlpMerger.js.map +1 -0
- package/features/flp/shared/CodeFlpPath.d.ts +15 -0
- package/features/flp/shared/CodeFlpPath.js +29 -0
- package/features/flp/shared/CodeFlpPath.js.map +1 -0
- package/features/flp/shared/CodeFlpTarget.d.ts +10 -0
- package/features/flp/shared/CodeFlpTarget.js +26 -0
- package/features/flp/shared/CodeFlpTarget.js.map +1 -0
- package/features/flp/shared/CodeFlpsProvider.d.ts +14 -0
- package/features/flp/shared/CodeFlpsProvider.js +33 -0
- package/features/flp/shared/CodeFlpsProvider.js.map +1 -0
- package/features/flp/shared/abstractions.d.ts +77 -0
- package/features/flp/shared/abstractions.js +19 -0
- package/features/flp/shared/abstractions.js.map +1 -0
- package/features/flp/shared/feature.d.ts +5 -0
- package/features/flp/shared/feature.js +17 -0
- package/features/flp/shared/feature.js.map +1 -0
- package/features/flp/shared/index.d.ts +4 -0
- package/features/flp/shared/index.js +4 -0
- package/features/folder/CreateFolder/CreateFolderRepository.d.ts +3 -3
- package/features/folder/CreateFolder/CreateFolderRepository.js +10 -7
- package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -1
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +9 -1
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +20 -3
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +3 -3
- package/features/folder/DeleteFolder/DeleteFolderRepository.js +6 -5
- package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -1
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +1 -3
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +3 -6
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -1
- package/features/folder/FolderModelProvider.d.ts +26 -0
- package/features/folder/FolderModelProvider.js +22 -0
- package/features/folder/FolderModelProvider.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +3 -3
- package/features/folder/GetAncestors/GetAncestorsRepository.js +6 -5
- package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -1
- package/features/folder/GetFolder/GetFolderRepository.d.ts +3 -3
- package/features/folder/GetFolder/GetFolderRepository.js +6 -5
- package/features/folder/GetFolder/GetFolderRepository.js.map +1 -1
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +3 -3
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +10 -8
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -1
- package/features/folder/ListFolders/ListFoldersRepository.d.ts +3 -3
- package/features/folder/ListFolders/ListFoldersRepository.js +8 -7
- package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -1
- package/features/folder/NotifyFolderChange/NotifyFolderChangeUseCase.d.ts +11 -0
- package/features/folder/NotifyFolderChange/NotifyFolderChangeUseCase.js +38 -0
- package/features/folder/NotifyFolderChange/NotifyFolderChangeUseCase.js.map +1 -0
- package/features/folder/NotifyFolderChange/NotifyOnFolderDeletedHandler.d.ts +12 -0
- package/features/folder/NotifyFolderChange/NotifyOnFolderDeletedHandler.js +24 -0
- package/features/folder/NotifyFolderChange/NotifyOnFolderDeletedHandler.js.map +1 -0
- package/features/folder/NotifyFolderChange/abstractions.d.ts +28 -0
- package/features/folder/NotifyFolderChange/abstractions.js +8 -0
- package/features/folder/NotifyFolderChange/abstractions.js.map +1 -0
- package/features/folder/NotifyFolderChange/feature.d.ts +9 -0
- package/features/folder/NotifyFolderChange/feature.js +13 -0
- package/features/folder/NotifyFolderChange/feature.js.map +1 -0
- package/features/folder/NotifyFolderChange/index.d.ts +2 -0
- package/features/folder/NotifyFolderChange/index.js +2 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +3 -3
- package/features/folder/UpdateFolder/UpdateFolderRepository.js +11 -8
- package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -1
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +14 -1
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +52 -4
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/shared/abstractions.d.ts +10 -0
- package/features/folder/shared/abstractions.js +3 -1
- package/features/folder/shared/abstractions.js.map +1 -1
- package/filter/filter.gql.d.ts +2 -3
- package/filter/filter.gql.js +61 -27
- package/filter/filter.gql.js.map +1 -1
- package/filter/filter.model.js +2 -1
- package/filter/filter.model.js.map +1 -1
- package/filter/filter.so.d.ts +2 -4
- package/filter/filter.so.js +21 -9
- package/filter/filter.so.js.map +1 -1
- package/flp/flp.types.d.ts +6 -1
- package/flp/tasks/createFlp.task.d.ts +11 -4
- package/flp/tasks/createFlp.task.js +32 -15
- package/flp/tasks/createFlp.task.js.map +1 -1
- package/flp/tasks/deleteFlp.task.d.ts +9 -4
- package/flp/tasks/deleteFlp.task.js +22 -13
- package/flp/tasks/deleteFlp.task.js.map +1 -1
- package/flp/tasks/index.d.ts +0 -1
- package/flp/tasks/index.js +1 -14
- package/flp/tasks/index.js.map +1 -1
- package/flp/tasks/syncFlp.task.d.ts +9 -4
- package/flp/tasks/syncFlp.task.js +22 -13
- package/flp/tasks/syncFlp.task.js.map +1 -1
- package/flp/tasks/updateFlp.task.d.ts +11 -4
- package/flp/tasks/updateFlp.task.js +40 -19
- package/flp/tasks/updateFlp.task.js.map +1 -1
- package/folder/createFolderTypeDefs.js +4 -1
- package/folder/createFolderTypeDefs.js.map +1 -1
- package/folder/folder.gql.d.ts +1 -1
- package/folder/folder.gql.js +4 -4
- package/folder/folder.gql.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -11
- package/package.json +23 -21
- package/types.d.ts +1 -2
- package/types.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +4 -4
- package/utils/createOperationsWrapper.js +5 -5
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.js +9 -5
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
- package/utils/resolve.d.ts +1 -1
- package/utils/resolve.js +1 -1
- package/utils/resolve.js.map +1 -1
- package/createAcoContext.d.ts +0 -3
- package/createAcoContext.js +0 -112
- package/createAcoContext.js.map +0 -1
- package/createAcoTasks.d.ts +0 -1
- package/createAcoTasks.js +0 -14
- package/createAcoTasks.js.map +0 -1
- package/index.js.map +0 -1
package/filter/filter.so.js
CHANGED
|
@@ -6,10 +6,20 @@ import { createOperationsWrapper } from "../utils/createOperationsWrapper.js";
|
|
|
6
6
|
import { pickEntryFieldValues } from "../utils/pickEntryFieldValues.js";
|
|
7
7
|
import { ENTRY_META_FIELDS } from "@webiny/api-headless-cms/constants.js";
|
|
8
8
|
import { CmsSortMapper, CmsWhereMapper } from "@webiny/api-headless-cms";
|
|
9
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
|
|
10
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
11
|
+
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
12
|
+
import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
13
|
+
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
|
|
14
|
+
const unwrap = (result)=>{
|
|
15
|
+
if (result.isFail()) throw result.error;
|
|
16
|
+
return result.value;
|
|
17
|
+
};
|
|
9
18
|
const createFilterOperations = (params)=>{
|
|
10
|
-
const {
|
|
19
|
+
const { identityContext, container } = params;
|
|
11
20
|
const { withModel } = createOperationsWrapper({
|
|
12
|
-
|
|
21
|
+
identityContext,
|
|
22
|
+
container,
|
|
13
23
|
modelName: FILTER_MODEL_ID
|
|
14
24
|
});
|
|
15
25
|
const cmsWhereMapper = container.resolve(CmsWhereMapper);
|
|
@@ -17,7 +27,7 @@ const createFilterOperations = (params)=>{
|
|
|
17
27
|
return {
|
|
18
28
|
getFilter ({ id }) {
|
|
19
29
|
return withModel(async (model)=>{
|
|
20
|
-
const entry = await
|
|
30
|
+
const entry = unwrap(await container.resolve(GetEntryByIdUseCase).execute(model, id));
|
|
21
31
|
if (!entry) throw new error("Could not load filter.", "GET_FILTER_ERROR", {
|
|
22
32
|
id
|
|
23
33
|
});
|
|
@@ -27,8 +37,8 @@ const createFilterOperations = (params)=>{
|
|
|
27
37
|
listFilters (params) {
|
|
28
38
|
return withModel(async (model)=>{
|
|
29
39
|
const { sort, where } = params;
|
|
30
|
-
const createdBy =
|
|
31
|
-
const
|
|
40
|
+
const createdBy = identityContext.getIdentity().id;
|
|
41
|
+
const result = await container.resolve(ListLatestEntriesUseCase).execute(model, {
|
|
32
42
|
...params,
|
|
33
43
|
sort: cmsSortMapper.map({
|
|
34
44
|
input: createListSort(sort),
|
|
@@ -42,6 +52,7 @@ const createFilterOperations = (params)=>{
|
|
|
42
52
|
fields: model.fields
|
|
43
53
|
})
|
|
44
54
|
});
|
|
55
|
+
const { entries, meta } = unwrap(result);
|
|
45
56
|
return [
|
|
46
57
|
entries.map(pickEntryFieldValues),
|
|
47
58
|
meta
|
|
@@ -50,16 +61,17 @@ const createFilterOperations = (params)=>{
|
|
|
50
61
|
},
|
|
51
62
|
createFilter ({ data }) {
|
|
52
63
|
return withModel(async (model)=>{
|
|
53
|
-
const
|
|
64
|
+
const result = await container.resolve(CreateEntryUseCase).execute(model, {
|
|
54
65
|
id: data.id,
|
|
55
66
|
values: data
|
|
56
67
|
});
|
|
68
|
+
const entry = unwrap(result);
|
|
57
69
|
return pickEntryFieldValues(entry);
|
|
58
70
|
});
|
|
59
71
|
},
|
|
60
72
|
updateFilter ({ id, data }) {
|
|
61
73
|
return withModel(async (model)=>{
|
|
62
|
-
const original = await
|
|
74
|
+
const original = unwrap(await container.resolve(GetEntryByIdUseCase).execute(model, id));
|
|
63
75
|
const input = {
|
|
64
76
|
...omit(original, ENTRY_META_FIELDS),
|
|
65
77
|
values: {
|
|
@@ -67,13 +79,13 @@ const createFilterOperations = (params)=>{
|
|
|
67
79
|
...data
|
|
68
80
|
}
|
|
69
81
|
};
|
|
70
|
-
const entry = await
|
|
82
|
+
const entry = unwrap(await container.resolve(UpdateEntryUseCase).execute(model, original.id, input));
|
|
71
83
|
return pickEntryFieldValues(entry);
|
|
72
84
|
});
|
|
73
85
|
},
|
|
74
86
|
deleteFilter ({ id }) {
|
|
75
87
|
return withModel(async (model)=>{
|
|
76
|
-
await
|
|
88
|
+
unwrap(await container.resolve(DeleteEntryUseCase).execute(model, id));
|
|
77
89
|
return true;
|
|
78
90
|
});
|
|
79
91
|
}
|
package/filter/filter.so.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter/filter.so.js","sources":["../../src/filter/filter.so.ts"],"sourcesContent":["import omit from \"lodash/omit.js\";\nimport WebinyError from \"@webiny/error\";\nimport { FILTER_MODEL_ID } from \"./filter.model.js\";\nimport type {
|
|
1
|
+
{"version":3,"file":"filter/filter.so.js","sources":["../../src/filter/filter.so.ts"],"sourcesContent":["import omit from \"lodash/omit.js\";\nimport WebinyError from \"@webiny/error\";\nimport { FILTER_MODEL_ID } from \"./filter.model.js\";\nimport type { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\nimport type { Container } from \"@webiny/di\";\n\ninterface CreateFilterOperationsParams {\n identityContext: IdentityContext.Interface;\n container: Container;\n}\nimport { createListSort } from \"~/utils/createListSort.js\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper.js\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues.js\";\nimport type { AcoFilterStorageOperations, Filter } from \"./filter.types.js\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport type { Result } from \"@webiny/feature/api\";\n\nconst unwrap = <TValue>(result: Result<TValue, Error>): TValue => {\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n};\n\nexport const createFilterOperations = (\n params: CreateFilterOperationsParams\n): AcoFilterStorageOperations => {\n const { identityContext, container } = params;\n\n const { withModel } = createOperationsWrapper({\n identityContext,\n container,\n modelName: FILTER_MODEL_ID\n });\n\n /*\n * The CMS use cases are resolved when an operation runs, not here. These operations are built\n * while ACO's storage is being resolved, and resolving the use cases at this point loops back\n * into that same storage until the stack overflows.\n */\n\n const cmsWhereMapper = container.resolve(CmsWhereMapper);\n const cmsSortMapper = container.resolve(CmsSortMapper);\n\n return {\n getFilter({ id }) {\n return withModel(async model => {\n const entry = unwrap(\n await container.resolve(GetEntryByIdUseCase).execute(model, id)\n );\n\n if (!entry) {\n throw new WebinyError(\"Could not load filter.\", \"GET_FILTER_ERROR\", {\n id\n });\n }\n\n return pickEntryFieldValues(entry);\n });\n },\n listFilters(params) {\n return withModel(async model => {\n const { sort, where } = params;\n const createdBy = identityContext.getIdentity().id;\n\n const result = await container.resolve(ListLatestEntriesUseCase).execute(model, {\n ...params,\n sort: cmsSortMapper.map({\n input: createListSort(sort),\n fields: model.fields\n }),\n where: cmsWhereMapper.map({\n input: {\n ...where,\n createdBy\n },\n fields: model.fields\n })\n });\n const { entries, meta } = unwrap(result);\n\n return [entries.map(pickEntryFieldValues<Filter>), meta];\n });\n },\n createFilter({ data }) {\n return withModel(async model => {\n const result = await container.resolve(CreateEntryUseCase).execute(model, {\n id: data.id,\n values: data\n });\n const entry = unwrap(result);\n return pickEntryFieldValues(entry);\n });\n },\n updateFilter({ id, data }) {\n return withModel(async model => {\n const original = unwrap(\n await container.resolve(GetEntryByIdUseCase).execute(model, id)\n );\n\n const input = {\n /**\n * We are omitting the standard entry meta fields:\n * we don't want to override them with the ones coming from the `original` entry.\n */\n ...omit(original, ENTRY_META_FIELDS),\n values: {\n ...original.values,\n ...data\n }\n };\n\n const entry = unwrap(\n await container.resolve(UpdateEntryUseCase).execute(model, original.id, input)\n );\n return pickEntryFieldValues(entry);\n });\n },\n deleteFilter({ id }) {\n return withModel(async model => {\n unwrap(await container.resolve(DeleteEntryUseCase).execute(model, id));\n return true;\n });\n }\n };\n};\n"],"names":["unwrap","result","createFilterOperations","params","identityContext","container","withModel","createOperationsWrapper","FILTER_MODEL_ID","cmsWhereMapper","CmsWhereMapper","cmsSortMapper","CmsSortMapper","id","model","entry","GetEntryByIdUseCase","WebinyError","pickEntryFieldValues","sort","where","createdBy","ListLatestEntriesUseCase","createListSort","entries","meta","data","CreateEntryUseCase","original","input","omit","ENTRY_META_FIELDS","UpdateEntryUseCase","DeleteEntryUseCase"],"mappings":";;;;;;;;;;;;;AAuBA,MAAMA,SAAS,CAASC;IACpB,IAAIA,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;IAEtB,OAAOA,OAAO,KAAK;AACvB;AAEO,MAAMC,yBAAyB,CAClCC;IAEA,MAAM,EAAEC,eAAe,EAAEC,SAAS,EAAE,GAAGF;IAEvC,MAAM,EAAEG,SAAS,EAAE,GAAGC,wBAAwB;QAC1CH;QACAC;QACA,WAAWG;IACf;IAQA,MAAMC,iBAAiBJ,UAAU,OAAO,CAACK;IACzC,MAAMC,gBAAgBN,UAAU,OAAO,CAACO;IAExC,OAAO;QACH,WAAU,EAAEC,EAAE,EAAE;YACZ,OAAOP,UAAU,OAAMQ;gBACnB,MAAMC,QAAQf,OACV,MAAMK,UAAU,OAAO,CAACW,qBAAqB,OAAO,CAACF,OAAOD;gBAGhE,IAAI,CAACE,OACD,MAAM,IAAIE,MAAY,0BAA0B,oBAAoB;oBAChEJ;gBACJ;gBAGJ,OAAOK,qBAAqBH;YAChC;QACJ;QACA,aAAYZ,MAAM;YACd,OAAOG,UAAU,OAAMQ;gBACnB,MAAM,EAAEK,IAAI,EAAEC,KAAK,EAAE,GAAGjB;gBACxB,MAAMkB,YAAYjB,gBAAgB,WAAW,GAAG,EAAE;gBAElD,MAAMH,SAAS,MAAMI,UAAU,OAAO,CAACiB,0BAA0B,OAAO,CAACR,OAAO;oBAC5E,GAAGX,MAAM;oBACT,MAAMQ,cAAc,GAAG,CAAC;wBACpB,OAAOY,eAAeJ;wBACtB,QAAQL,MAAM,MAAM;oBACxB;oBACA,OAAOL,eAAe,GAAG,CAAC;wBACtB,OAAO;4BACH,GAAGW,KAAK;4BACRC;wBACJ;wBACA,QAAQP,MAAM,MAAM;oBACxB;gBACJ;gBACA,MAAM,EAAEU,OAAO,EAAEC,IAAI,EAAE,GAAGzB,OAAOC;gBAEjC,OAAO;oBAACuB,QAAQ,GAAG,CAACN;oBAA+BO;iBAAK;YAC5D;QACJ;QACA,cAAa,EAAEC,IAAI,EAAE;YACjB,OAAOpB,UAAU,OAAMQ;gBACnB,MAAMb,SAAS,MAAMI,UAAU,OAAO,CAACsB,oBAAoB,OAAO,CAACb,OAAO;oBACtE,IAAIY,KAAK,EAAE;oBACX,QAAQA;gBACZ;gBACA,MAAMX,QAAQf,OAAOC;gBACrB,OAAOiB,qBAAqBH;YAChC;QACJ;QACA,cAAa,EAAEF,EAAE,EAAEa,IAAI,EAAE;YACrB,OAAOpB,UAAU,OAAMQ;gBACnB,MAAMc,WAAW5B,OACb,MAAMK,UAAU,OAAO,CAACW,qBAAqB,OAAO,CAACF,OAAOD;gBAGhE,MAAMgB,QAAQ;oBAKV,GAAGC,KAAKF,UAAUG,kBAAkB;oBACpC,QAAQ;wBACJ,GAAGH,SAAS,MAAM;wBAClB,GAAGF,IAAI;oBACX;gBACJ;gBAEA,MAAMX,QAAQf,OACV,MAAMK,UAAU,OAAO,CAAC2B,oBAAoB,OAAO,CAAClB,OAAOc,SAAS,EAAE,EAAEC;gBAE5E,OAAOX,qBAAqBH;YAChC;QACJ;QACA,cAAa,EAAEF,EAAE,EAAE;YACf,OAAOP,UAAU,OAAMQ;gBACnBd,OAAO,MAAMK,UAAU,OAAO,CAAC4B,oBAAoB,OAAO,CAACnB,OAAOD;gBAClE,OAAO;YACX;QACJ;IACJ;AACJ"}
|
package/flp/flp.types.d.ts
CHANGED
|
@@ -79,10 +79,15 @@ export interface AcoFolderLevelPermissionsStorageOperations {
|
|
|
79
79
|
*******/
|
|
80
80
|
export interface ICreateFlpTaskInput {
|
|
81
81
|
folder: Folder;
|
|
82
|
+
/** Who created the folder. Their open admin tabs are told once the FLP record exists. */
|
|
83
|
+
notifyIdentityId?: string;
|
|
82
84
|
}
|
|
83
85
|
export interface IUpdateFlpTaskInput {
|
|
84
86
|
folder: Folder;
|
|
85
|
-
|
|
87
|
+
/** Folders whose whole subtree an earlier run of this task already wrote. */
|
|
88
|
+
completed?: string[];
|
|
89
|
+
/** Who changed the folder. Their open admin tabs are told once the whole subtree is written. */
|
|
90
|
+
notifyIdentityId?: string;
|
|
86
91
|
}
|
|
87
92
|
export interface IDeleteFlpTaskInput {
|
|
88
93
|
folder: Folder;
|
|
@@ -1,16 +1,23 @@
|
|
|
1
|
-
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
2
|
import { type ICreateFlpTaskInput } from "../../types.js";
|
|
3
3
|
import { CreateFlpUseCase } from "../../features/flp/CreateFlp/index.js";
|
|
4
|
-
|
|
4
|
+
import { NotifyFolderChangeUseCase } from "../../features/folder/NotifyFolderChange/index.js";
|
|
5
|
+
declare class CreateFlpTaskHandlerImpl implements TaskHandler.Interface<ICreateFlpTaskInput> {
|
|
5
6
|
private createFlp;
|
|
7
|
+
private notifyFolderChange;
|
|
8
|
+
constructor(createFlp: CreateFlpUseCase.Interface, notifyFolderChange: NotifyFolderChangeUseCase.Interface);
|
|
9
|
+
run({ input, controller }: TaskHandler.RunParams<ICreateFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | TaskDefinition.ResultContinue<ICreateFlpTaskInput> | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
10
|
+
}
|
|
11
|
+
declare class CreateFlpTaskImpl implements TaskDefinition.Interface {
|
|
6
12
|
readonly id = "acoCreateFlp";
|
|
7
13
|
readonly title = "ACO - Create FLP record";
|
|
8
14
|
readonly description = "Synchronizes the FLP catalog by creating the FLP record based on the provided folder.";
|
|
9
15
|
readonly databaseLogs = false;
|
|
10
16
|
readonly isPrivate = true;
|
|
11
17
|
readonly selfCleanup: ("onAbort" | "onSuccess")[];
|
|
12
|
-
|
|
13
|
-
|
|
18
|
+
handler: typeof CreateFlpTaskHandlerImpl & {
|
|
19
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
20
|
+
};
|
|
14
21
|
}
|
|
15
22
|
export declare const CreateFlpTask: typeof CreateFlpTaskImpl & {
|
|
16
23
|
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
@@ -1,36 +1,53 @@
|
|
|
1
|
-
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
2
|
import { CREATE_FLP_TASK_ID } from "./index.js";
|
|
3
3
|
import { CreateFlpUseCase } from "../../features/flp/CreateFlp/index.js";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { NotifyFolderChangeUseCase } from "../../features/folder/NotifyFolderChange/index.js";
|
|
5
|
+
class CreateFlpTaskHandlerImpl {
|
|
6
|
+
constructor(createFlp, notifyFolderChange){
|
|
6
7
|
this.createFlp = createFlp;
|
|
7
|
-
this.
|
|
8
|
-
this.title = "ACO - Create FLP record";
|
|
9
|
-
this.description = "Synchronizes the FLP catalog by creating the FLP record based on the provided folder.";
|
|
10
|
-
this.databaseLogs = false;
|
|
11
|
-
this.isPrivate = true;
|
|
12
|
-
this.selfCleanup = [
|
|
13
|
-
"onSuccess",
|
|
14
|
-
"onAbort"
|
|
15
|
-
];
|
|
8
|
+
this.notifyFolderChange = notifyFolderChange;
|
|
16
9
|
}
|
|
17
10
|
async run({ input, controller }) {
|
|
18
11
|
try {
|
|
19
12
|
if (controller.runtime.isAborted()) return controller.response.aborted();
|
|
20
13
|
if (controller.runtime.isCloseToTimeout()) return controller.response.continue(input);
|
|
21
14
|
await this.createFlp.execute(input.folder);
|
|
15
|
+
if (input.notifyIdentityId) await this.notifyFolderChange.execute({
|
|
16
|
+
id: input.folder.id,
|
|
17
|
+
change: "created",
|
|
18
|
+
identityId: input.notifyIdentityId
|
|
19
|
+
});
|
|
22
20
|
return controller.response.done("Task done: FLP record created.");
|
|
23
21
|
} catch (error) {
|
|
24
22
|
return controller.response.error(error);
|
|
25
23
|
}
|
|
26
24
|
}
|
|
27
25
|
}
|
|
28
|
-
const
|
|
29
|
-
implementation:
|
|
26
|
+
const CreateFlpTaskHandler = TaskHandler.createImplementation({
|
|
27
|
+
implementation: CreateFlpTaskHandlerImpl,
|
|
30
28
|
dependencies: [
|
|
31
|
-
CreateFlpUseCase
|
|
29
|
+
CreateFlpUseCase,
|
|
30
|
+
NotifyFolderChangeUseCase
|
|
32
31
|
]
|
|
33
32
|
});
|
|
33
|
+
class CreateFlpTaskImpl {
|
|
34
|
+
constructor(){
|
|
35
|
+
this.id = CREATE_FLP_TASK_ID;
|
|
36
|
+
this.title = "ACO - Create FLP record";
|
|
37
|
+
this.description = "Synchronizes the FLP catalog by creating the FLP record based on the provided folder.";
|
|
38
|
+
this.databaseLogs = false;
|
|
39
|
+
this.isPrivate = true;
|
|
40
|
+
this.selfCleanup = [
|
|
41
|
+
"onSuccess",
|
|
42
|
+
"onAbort"
|
|
43
|
+
];
|
|
44
|
+
this.handler = CreateFlpTaskHandler;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const CreateFlpTask = TaskDefinition.createImplementation({
|
|
48
|
+
implementation: CreateFlpTaskImpl,
|
|
49
|
+
dependencies: []
|
|
50
|
+
});
|
|
34
51
|
export { CreateFlpTask };
|
|
35
52
|
|
|
36
53
|
//# sourceMappingURL=createFlp.task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flp/tasks/createFlp.task.js","sources":["../../../src/flp/tasks/createFlp.task.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"flp/tasks/createFlp.task.js","sources":["../../../src/flp/tasks/createFlp.task.ts"],"sourcesContent":["import {\n TaskDefinition,\n TaskHandler\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CREATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type ICreateFlpTaskInput } from \"~/types.js\";\nimport { CreateFlpUseCase } from \"~/features/flp/CreateFlp/index.js\";\nimport { NotifyFolderChangeUseCase } from \"~/features/folder/NotifyFolderChange/index.js\";\n\nclass CreateFlpTaskHandlerImpl implements TaskHandler.Interface<ICreateFlpTaskInput> {\n constructor(\n private createFlp: CreateFlpUseCase.Interface,\n private notifyFolderChange: NotifyFolderChangeUseCase.Interface\n ) {}\n\n async run({ input, controller }: TaskHandler.RunParams<ICreateFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue(input);\n }\n\n await this.createFlp.execute(input.folder);\n\n // Only now can the admin read the folder back with its permissions.\n if (input.notifyIdentityId) {\n await this.notifyFolderChange.execute({\n id: input.folder.id,\n change: \"created\",\n identityId: input.notifyIdentityId\n });\n }\n\n return controller.response.done(\"Task done: FLP record created.\");\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nconst CreateFlpTaskHandler = TaskHandler.createImplementation({\n implementation: CreateFlpTaskHandlerImpl,\n dependencies: [CreateFlpUseCase, NotifyFolderChangeUseCase]\n});\n\nclass CreateFlpTaskImpl implements TaskDefinition.Interface {\n public readonly id = CREATE_FLP_TASK_ID;\n public readonly title = \"ACO - Create FLP record\";\n public readonly description =\n \"Synchronizes the FLP catalog by creating the FLP record based on the provided folder.\";\n public readonly databaseLogs = false;\n public readonly isPrivate = true;\n public readonly selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n handler = CreateFlpTaskHandler;\n}\n\nexport const CreateFlpTask = TaskDefinition.createImplementation({\n implementation: CreateFlpTaskImpl,\n dependencies: []\n});\n"],"names":["CreateFlpTaskHandlerImpl","createFlp","notifyFolderChange","input","controller","error","CreateFlpTaskHandler","TaskHandler","CreateFlpUseCase","NotifyFolderChangeUseCase","CreateFlpTaskImpl","CREATE_FLP_TASK_ID","CreateFlpTask","TaskDefinition"],"mappings":";;;;AASA,MAAMA;IACF,YACYC,SAAqC,EACrCC,kBAAuD,CACjE;aAFUD,SAAS,GAATA;aACAC,kBAAkB,GAAlBA;IACT;IAEH,MAAM,IAAI,EAAEC,KAAK,EAAEC,UAAU,EAA8C,EAAE;QACzE,IAAI;YACA,IAAIA,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAGtC,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IACnC,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAACD;YAGxC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACA,MAAM,MAAM;YAGzC,IAAIA,MAAM,gBAAgB,EACtB,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBAClC,IAAIA,MAAM,MAAM,CAAC,EAAE;gBACnB,QAAQ;gBACR,YAAYA,MAAM,gBAAgB;YACtC;YAGJ,OAAOC,WAAW,QAAQ,CAAC,IAAI,CAAC;QACpC,EAAE,OAAOC,OAAO;YACZ,OAAOD,WAAW,QAAQ,CAAC,KAAK,CAACC;QACrC;IACJ;AACJ;AAEA,MAAMC,uBAAuBC,YAAY,oBAAoB,CAAC;IAC1D,gBAAgBP;IAChB,cAAc;QAACQ;QAAkBC;KAA0B;AAC/D;AAEA,MAAMC;;aACc,EAAE,GAAGC;aACL,KAAK,GAAG;aACR,WAAW,GACvB;aACY,YAAY,GAAG;aACf,SAAS,GAAG;aACZ,WAAW,GAAG;YAAC;YAAsB;SAAmB;aAExE,OAAO,GAAGL;;AACd;AAEO,MAAMM,gBAAgBC,eAAe,oBAAoB,CAAC;IAC7D,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
2
|
import { type IDeleteFlpTaskInput } from "../../types.js";
|
|
3
3
|
import { DeleteFlpUseCase } from "../../features/flp/DeleteFlp/index.js";
|
|
4
|
-
declare class
|
|
4
|
+
declare class DeleteFlpTaskHandlerImpl implements TaskHandler.Interface<IDeleteFlpTaskInput> {
|
|
5
5
|
private deleteFlp;
|
|
6
|
+
constructor(deleteFlp: DeleteFlpUseCase.Interface);
|
|
7
|
+
run({ input, controller }: TaskHandler.RunParams<IDeleteFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | TaskDefinition.ResultContinue<IDeleteFlpTaskInput> | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
8
|
+
}
|
|
9
|
+
declare class DeleteFlpTaskImpl implements TaskDefinition.Interface {
|
|
6
10
|
readonly id = "acoDeleteFlp";
|
|
7
11
|
readonly title = "ACO - Delete FLP record";
|
|
8
12
|
readonly description = "Synchronizes the FLP catalog by deleting the FLP record based on the provided folder.";
|
|
9
13
|
readonly databaseLogs = false;
|
|
10
14
|
readonly isPrivate = true;
|
|
11
15
|
readonly selfCleanup: ("onAbort" | "onSuccess")[];
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
handler: typeof DeleteFlpTaskHandlerImpl & {
|
|
17
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
18
|
+
};
|
|
14
19
|
}
|
|
15
20
|
export declare const DeleteFlpTask: typeof DeleteFlpTaskImpl & {
|
|
16
21
|
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
2
|
import { DELETE_FLP_TASK_ID } from "./index.js";
|
|
3
3
|
import { DeleteFlpUseCase } from "../../features/flp/DeleteFlp/index.js";
|
|
4
|
-
class
|
|
4
|
+
class DeleteFlpTaskHandlerImpl {
|
|
5
5
|
constructor(deleteFlp){
|
|
6
6
|
this.deleteFlp = deleteFlp;
|
|
7
|
-
this.id = DELETE_FLP_TASK_ID;
|
|
8
|
-
this.title = "ACO - Delete FLP record";
|
|
9
|
-
this.description = "Synchronizes the FLP catalog by deleting the FLP record based on the provided folder.";
|
|
10
|
-
this.databaseLogs = false;
|
|
11
|
-
this.isPrivate = true;
|
|
12
|
-
this.selfCleanup = [
|
|
13
|
-
"onSuccess",
|
|
14
|
-
"onAbort"
|
|
15
|
-
];
|
|
16
7
|
}
|
|
17
8
|
async run({ input, controller }) {
|
|
18
9
|
try {
|
|
@@ -25,12 +16,30 @@ class DeleteFlpTaskImpl {
|
|
|
25
16
|
}
|
|
26
17
|
}
|
|
27
18
|
}
|
|
28
|
-
const
|
|
29
|
-
implementation:
|
|
19
|
+
const DeleteFlpTaskHandler = TaskHandler.createImplementation({
|
|
20
|
+
implementation: DeleteFlpTaskHandlerImpl,
|
|
30
21
|
dependencies: [
|
|
31
22
|
DeleteFlpUseCase
|
|
32
23
|
]
|
|
33
24
|
});
|
|
25
|
+
class DeleteFlpTaskImpl {
|
|
26
|
+
constructor(){
|
|
27
|
+
this.id = DELETE_FLP_TASK_ID;
|
|
28
|
+
this.title = "ACO - Delete FLP record";
|
|
29
|
+
this.description = "Synchronizes the FLP catalog by deleting the FLP record based on the provided folder.";
|
|
30
|
+
this.databaseLogs = false;
|
|
31
|
+
this.isPrivate = true;
|
|
32
|
+
this.selfCleanup = [
|
|
33
|
+
"onSuccess",
|
|
34
|
+
"onAbort"
|
|
35
|
+
];
|
|
36
|
+
this.handler = DeleteFlpTaskHandler;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const DeleteFlpTask = TaskDefinition.createImplementation({
|
|
40
|
+
implementation: DeleteFlpTaskImpl,
|
|
41
|
+
dependencies: []
|
|
42
|
+
});
|
|
34
43
|
export { DeleteFlpTask };
|
|
35
44
|
|
|
36
45
|
//# sourceMappingURL=deleteFlp.task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flp/tasks/deleteFlp.task.js","sources":["../../../src/flp/tasks/deleteFlp.task.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"flp/tasks/deleteFlp.task.js","sources":["../../../src/flp/tasks/deleteFlp.task.ts"],"sourcesContent":["import {\n TaskDefinition,\n TaskHandler\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { DELETE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type IDeleteFlpTaskInput } from \"~/types.js\";\nimport { DeleteFlpUseCase } from \"~/features/flp/DeleteFlp/index.js\";\n\nclass DeleteFlpTaskHandlerImpl implements TaskHandler.Interface<IDeleteFlpTaskInput> {\n constructor(private deleteFlp: DeleteFlpUseCase.Interface) {}\n\n async run({ input, controller }: TaskHandler.RunParams<IDeleteFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue(input);\n }\n\n await this.deleteFlp.execute(input.folder);\n\n return controller.response.done(\"Task done: FLP record deleted.\");\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nconst DeleteFlpTaskHandler = TaskHandler.createImplementation({\n implementation: DeleteFlpTaskHandlerImpl,\n dependencies: [DeleteFlpUseCase]\n});\n\nclass DeleteFlpTaskImpl implements TaskDefinition.Interface {\n public readonly id = DELETE_FLP_TASK_ID;\n public readonly title = \"ACO - Delete FLP record\";\n public readonly description =\n \"Synchronizes the FLP catalog by deleting the FLP record based on the provided folder.\";\n public readonly databaseLogs = false;\n public readonly isPrivate = true;\n public readonly selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n handler = DeleteFlpTaskHandler;\n}\n\nexport const DeleteFlpTask = TaskDefinition.createImplementation({\n implementation: DeleteFlpTaskImpl,\n dependencies: []\n});\n"],"names":["DeleteFlpTaskHandlerImpl","deleteFlp","input","controller","error","DeleteFlpTaskHandler","TaskHandler","DeleteFlpUseCase","DeleteFlpTaskImpl","DELETE_FLP_TASK_ID","DeleteFlpTask","TaskDefinition"],"mappings":";;;AAQA,MAAMA;IACF,YAAoBC,SAAqC,CAAE;aAAvCA,SAAS,GAATA;IAAwC;IAE5D,MAAM,IAAI,EAAEC,KAAK,EAAEC,UAAU,EAA8C,EAAE;QACzE,IAAI;YACA,IAAIA,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAGtC,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IACnC,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAACD;YAGxC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACA,MAAM,MAAM;YAEzC,OAAOC,WAAW,QAAQ,CAAC,IAAI,CAAC;QACpC,EAAE,OAAOC,OAAO;YACZ,OAAOD,WAAW,QAAQ,CAAC,KAAK,CAACC;QACrC;IACJ;AACJ;AAEA,MAAMC,uBAAuBC,YAAY,oBAAoB,CAAC;IAC1D,gBAAgBN;IAChB,cAAc;QAACO;KAAiB;AACpC;AAEA,MAAMC;;aACc,EAAE,GAAGC;aACL,KAAK,GAAG;aACR,WAAW,GACvB;aACY,YAAY,GAAG;aACf,SAAS,GAAG;aACZ,WAAW,GAAG;YAAC;YAAsB;SAAmB;aAExE,OAAO,GAAGJ;;AACd;AAEO,MAAMK,gBAAgBC,eAAe,oBAAoB,CAAC;IAC7D,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
|
package/flp/tasks/index.d.ts
CHANGED
|
@@ -2,4 +2,3 @@ export declare const CREATE_FLP_TASK_ID = "acoCreateFlp";
|
|
|
2
2
|
export declare const DELETE_FLP_TASK_ID = "acoDeleteFlp";
|
|
3
3
|
export declare const UPDATE_FLP_TASK_ID = "acoUpdateFlp";
|
|
4
4
|
export declare const SYNC_FLP_TASK_ID = "acoSyncFlp";
|
|
5
|
-
export declare const flpTasks: () => import("@webiny/api").ContextPlugin<import("@webiny/api/types.js").Context>[];
|
package/flp/tasks/index.js
CHANGED
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
import { CreateFlpTask } from "./createFlp.task.js";
|
|
2
|
-
import { UpdateFlpTask } from "./updateFlp.task.js";
|
|
3
|
-
import { DeleteFlpTask } from "./deleteFlp.task.js";
|
|
4
|
-
import { SyncFlpTask } from "./syncFlp.task.js";
|
|
5
|
-
import { createContextPlugin } from "@webiny/api";
|
|
6
1
|
const CREATE_FLP_TASK_ID = "acoCreateFlp";
|
|
7
2
|
const DELETE_FLP_TASK_ID = "acoDeleteFlp";
|
|
8
3
|
const UPDATE_FLP_TASK_ID = "acoUpdateFlp";
|
|
9
4
|
const SYNC_FLP_TASK_ID = "acoSyncFlp";
|
|
10
|
-
|
|
11
|
-
createContextPlugin((context)=>{
|
|
12
|
-
context.container.register(CreateFlpTask);
|
|
13
|
-
context.container.register(UpdateFlpTask);
|
|
14
|
-
context.container.register(DeleteFlpTask);
|
|
15
|
-
context.container.register(SyncFlpTask);
|
|
16
|
-
})
|
|
17
|
-
];
|
|
18
|
-
export { CREATE_FLP_TASK_ID, DELETE_FLP_TASK_ID, SYNC_FLP_TASK_ID, UPDATE_FLP_TASK_ID, flpTasks };
|
|
5
|
+
export { CREATE_FLP_TASK_ID, DELETE_FLP_TASK_ID, SYNC_FLP_TASK_ID, UPDATE_FLP_TASK_ID };
|
|
19
6
|
|
|
20
7
|
//# sourceMappingURL=index.js.map
|
package/flp/tasks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flp/tasks/index.js","sources":["../../../src/flp/tasks/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"flp/tasks/index.js","sources":["../../../src/flp/tasks/index.ts"],"sourcesContent":["export const CREATE_FLP_TASK_ID = \"acoCreateFlp\";\nexport const DELETE_FLP_TASK_ID = \"acoDeleteFlp\";\nexport const UPDATE_FLP_TASK_ID = \"acoUpdateFlp\";\nexport const SYNC_FLP_TASK_ID = \"acoSyncFlp\";\n"],"names":["CREATE_FLP_TASK_ID","DELETE_FLP_TASK_ID","UPDATE_FLP_TASK_ID","SYNC_FLP_TASK_ID"],"mappings":"AAAO,MAAMA,qBAAqB;AAC3B,MAAMC,qBAAqB;AAC3B,MAAMC,qBAAqB;AAC3B,MAAMC,mBAAmB"}
|
|
@@ -1,20 +1,25 @@
|
|
|
1
|
-
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
2
|
import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
|
|
3
3
|
import { type ISyncFlpTaskInput } from "../../types.js";
|
|
4
4
|
import { GetFolderUseCase } from "../../features/folder/GetFolder/index.js";
|
|
5
5
|
import { ListFoldersUseCase } from "../../features/folder/ListFolders/index.js";
|
|
6
|
-
declare class
|
|
6
|
+
declare class SyncFlpTaskHandlerImpl implements TaskHandler.Interface<ISyncFlpTaskInput> {
|
|
7
7
|
private getFolder;
|
|
8
8
|
private listFolders;
|
|
9
9
|
private listModels;
|
|
10
|
+
constructor(getFolder: GetFolderUseCase.Interface, listFolders: ListFoldersUseCase.Interface, listModels: ListModelsUseCase.Interface);
|
|
11
|
+
run({ input, controller }: TaskHandler.RunParams<ISyncFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
12
|
+
}
|
|
13
|
+
declare class SyncFlpTaskImpl implements TaskDefinition.Interface {
|
|
10
14
|
readonly id = "acoSyncFlp";
|
|
11
15
|
readonly title = "ACO - Sync FLP record";
|
|
12
16
|
readonly description = "Synchronizes the FLP catalog by updating the FLP record and its descendants.";
|
|
13
17
|
readonly databaseLogs = false;
|
|
14
18
|
readonly isPrivate = true;
|
|
15
19
|
readonly selfCleanup: ("onAbort" | "onSuccess")[];
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
handler: typeof SyncFlpTaskHandlerImpl & {
|
|
21
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
22
|
+
};
|
|
18
23
|
}
|
|
19
24
|
export declare const SyncFlpTask: typeof SyncFlpTaskImpl & {
|
|
20
25
|
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
2
|
import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
|
|
3
3
|
import { SYNC_FLP_TASK_ID, UPDATE_FLP_TASK_ID } from "./index.js";
|
|
4
4
|
import { FM_FILE_TYPE } from "../../constants.js";
|
|
5
5
|
import { GetFolderUseCase } from "../../features/folder/GetFolder/index.js";
|
|
6
6
|
import { ListFoldersUseCase } from "../../features/folder/ListFolders/index.js";
|
|
7
|
-
class
|
|
7
|
+
class SyncFlpTaskHandlerImpl {
|
|
8
8
|
constructor(getFolder, listFolders, listModels){
|
|
9
9
|
this.getFolder = getFolder;
|
|
10
10
|
this.listFolders = listFolders;
|
|
11
11
|
this.listModels = listModels;
|
|
12
|
-
this.id = SYNC_FLP_TASK_ID;
|
|
13
|
-
this.title = "ACO - Sync FLP record";
|
|
14
|
-
this.description = "Synchronizes the FLP catalog by updating the FLP record and its descendants.";
|
|
15
|
-
this.databaseLogs = false;
|
|
16
|
-
this.isPrivate = true;
|
|
17
|
-
this.selfCleanup = [
|
|
18
|
-
"onSuccess",
|
|
19
|
-
"onAbort"
|
|
20
|
-
];
|
|
21
12
|
}
|
|
22
13
|
async run({ input, controller }) {
|
|
23
14
|
try {
|
|
@@ -99,14 +90,32 @@ class SyncFlpTaskImpl {
|
|
|
99
90
|
}
|
|
100
91
|
}
|
|
101
92
|
}
|
|
102
|
-
const
|
|
103
|
-
implementation:
|
|
93
|
+
const SyncFlpTaskHandler = TaskHandler.createImplementation({
|
|
94
|
+
implementation: SyncFlpTaskHandlerImpl,
|
|
104
95
|
dependencies: [
|
|
105
96
|
GetFolderUseCase,
|
|
106
97
|
ListFoldersUseCase,
|
|
107
98
|
ListModelsUseCase
|
|
108
99
|
]
|
|
109
100
|
});
|
|
101
|
+
class SyncFlpTaskImpl {
|
|
102
|
+
constructor(){
|
|
103
|
+
this.id = SYNC_FLP_TASK_ID;
|
|
104
|
+
this.title = "ACO - Sync FLP record";
|
|
105
|
+
this.description = "Synchronizes the FLP catalog by updating the FLP record and its descendants.";
|
|
106
|
+
this.databaseLogs = false;
|
|
107
|
+
this.isPrivate = true;
|
|
108
|
+
this.selfCleanup = [
|
|
109
|
+
"onSuccess",
|
|
110
|
+
"onAbort"
|
|
111
|
+
];
|
|
112
|
+
this.handler = SyncFlpTaskHandler;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const SyncFlpTask = TaskDefinition.createImplementation({
|
|
116
|
+
implementation: SyncFlpTaskImpl,
|
|
117
|
+
dependencies: []
|
|
118
|
+
});
|
|
110
119
|
export { SyncFlpTask };
|
|
111
120
|
|
|
112
121
|
//# sourceMappingURL=syncFlp.task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flp/tasks/syncFlp.task.js","sources":["../../../src/flp/tasks/syncFlp.task.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"flp/tasks/syncFlp.task.js","sources":["../../../src/flp/tasks/syncFlp.task.ts"],"sourcesContent":["import {\n TaskDefinition,\n TaskHandler\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { SYNC_FLP_TASK_ID, UPDATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type ISyncFlpTaskInput, type IUpdateFlpTaskInput } from \"~/types.js\";\nimport { FM_FILE_TYPE } from \"~/constants.js\";\nimport { GetFolderUseCase } from \"~/features/folder/GetFolder/index.js\";\nimport { ListFoldersUseCase } from \"~/features/folder/ListFolders/index.js\";\n\nclass SyncFlpTaskHandlerImpl implements TaskHandler.Interface<ISyncFlpTaskInput> {\n public constructor(\n private getFolder: GetFolderUseCase.Interface,\n private listFolders: ListFoldersUseCase.Interface,\n private listModels: ListModelsUseCase.Interface\n ) {}\n\n async run({ input, controller }: TaskHandler.RunParams<ISyncFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n /**\n * `folderId` provided in the task input. We need to:\n *\n * - update the FLP records for the found folder and all its descendants.\n */\n if (input.folderId) {\n const result = await this.getFolder.execute(input.folderId);\n if (result.isFail()) {\n return controller.response.error(result.error);\n }\n const folder = result.value;\n\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n\n return controller.response.done(\n `Task completed successfully: all FLP records for folderId \"${input.folderId}\" and its children have been queued to be synchronized.`\n );\n }\n\n /**\n * Full update required. We need to:\n *\n * - list cms models to collect their types, together with the default ones [FM_FILE_TYPE]\n * - list all root folders\n * - update the FLP records for the found folders and all its descendants.\n */\n if (input.type && input.type === \"*\") {\n // Some folder types are fixed: pages and files.\n const folderTypes = [FM_FILE_TYPE];\n\n // List all non-private models\n const modelsResult = await this.listModels.execute();\n if (modelsResult.isOk()) {\n const models = modelsResult.value;\n for (const model of models) {\n folderTypes.push(`cms:${model.modelId}`);\n }\n }\n\n for (const folderType of folderTypes) {\n const result = await this.listFolders.execute({\n where: {\n type: folderType,\n parentId: null\n }\n });\n if (result.isFail()) {\n await controller.logger.error({\n message: `Failed to list root folders for type ${folderType}`,\n data: {\n type: folderType,\n error: result.error\n }\n });\n continue;\n }\n\n const { folders } = result.value;\n\n for (const folder of folders) {\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n }\n\n await controller.logger.info({\n message: `FLP Update task triggered for type ${folderType}`,\n data: {\n type: folderType\n }\n });\n }\n\n return controller.response.done(\n `Task completed successfully: all FLP records have been queued to be synchronized.`\n );\n }\n\n /**\n * `type` provided in the task input. We need to:\n *\n * - list all root folders for the provided type\n * - update the FLP records for the found folders and all its descendants.\n */\n if (input.type) {\n const result = await this.listFolders.execute({\n where: {\n type: input.type!,\n parentId: null\n }\n });\n if (result.isFail()) {\n return controller.response.error(result.error);\n }\n\n const { folders } = result.value;\n\n for (const folder of folders) {\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n }\n\n return controller.response.done(\n `Task completed successfully: all FLP records for type \"${input.type}\" have been queued to be synchronized.`\n );\n }\n\n return controller.response.error(\n \"Invalid input: please provide either `type` or `folderId`.\"\n );\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nconst SyncFlpTaskHandler = TaskHandler.createImplementation({\n implementation: SyncFlpTaskHandlerImpl,\n dependencies: [GetFolderUseCase, ListFoldersUseCase, ListModelsUseCase]\n});\n\nclass SyncFlpTaskImpl implements TaskDefinition.Interface {\n public readonly id = SYNC_FLP_TASK_ID;\n public readonly title = \"ACO - Sync FLP record\";\n public readonly description =\n \"Synchronizes the FLP catalog by updating the FLP record and its descendants.\";\n public readonly databaseLogs = false;\n public readonly isPrivate = true;\n public readonly selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n handler = SyncFlpTaskHandler;\n}\n\nexport const SyncFlpTask = TaskDefinition.createImplementation({\n implementation: SyncFlpTaskImpl,\n dependencies: []\n});\n"],"names":["SyncFlpTaskHandlerImpl","getFolder","listFolders","listModels","input","controller","result","folder","UPDATE_FLP_TASK_ID","folderTypes","FM_FILE_TYPE","modelsResult","models","model","folderType","folders","error","SyncFlpTaskHandler","TaskHandler","GetFolderUseCase","ListFoldersUseCase","ListModelsUseCase","SyncFlpTaskImpl","SYNC_FLP_TASK_ID","SyncFlpTask","TaskDefinition"],"mappings":";;;;;;AAWA,MAAMA;IACF,YACYC,SAAqC,EACrCC,WAAyC,EACzCC,UAAuC,CACjD;aAHUF,SAAS,GAATA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,IAAI,EAAEC,KAAK,EAAEC,UAAU,EAA4C,EAAE;QACvE,IAAI;YACA,IAAIA,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAQtC,IAAID,MAAM,QAAQ,EAAE;gBAChB,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACF,MAAM,QAAQ;gBAC1D,IAAIE,OAAO,MAAM,IACb,OAAOD,WAAW,QAAQ,CAAC,KAAK,CAACC,OAAO,KAAK;gBAEjD,MAAMC,SAASD,OAAO,KAAK;gBAE3B,MAAMD,WAAW,IAAI,CAAC,OAAO,CAAsB;oBAC/C,YAAYG;oBACZ,OAAO;wBACHD;oBACJ;gBACJ;gBAEA,OAAOF,WAAW,QAAQ,CAAC,IAAI,CAC3B,CAAC,2DAA2D,EAAED,MAAM,QAAQ,CAAC,uDAAuD,CAAC;YAE7I;YASA,IAAIA,MAAM,IAAI,IAAIA,AAAe,QAAfA,MAAM,IAAI,EAAU;gBAElC,MAAMK,cAAc;oBAACC;iBAAa;gBAGlC,MAAMC,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO;gBAClD,IAAIA,aAAa,IAAI,IAAI;oBACrB,MAAMC,SAASD,aAAa,KAAK;oBACjC,KAAK,MAAME,SAASD,OAChBH,YAAY,IAAI,CAAC,CAAC,IAAI,EAAEI,MAAM,OAAO,EAAE;gBAE/C;gBAEA,KAAK,MAAMC,cAAcL,YAAa;oBAClC,MAAMH,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;wBAC1C,OAAO;4BACH,MAAMQ;4BACN,UAAU;wBACd;oBACJ;oBACA,IAAIR,OAAO,MAAM,IAAI;wBACjB,MAAMD,WAAW,MAAM,CAAC,KAAK,CAAC;4BAC1B,SAAS,CAAC,qCAAqC,EAAES,YAAY;4BAC7D,MAAM;gCACF,MAAMA;gCACN,OAAOR,OAAO,KAAK;4BACvB;wBACJ;wBACA;oBACJ;oBAEA,MAAM,EAAES,OAAO,EAAE,GAAGT,OAAO,KAAK;oBAEhC,KAAK,MAAMC,UAAUQ,QACjB,MAAMV,WAAW,IAAI,CAAC,OAAO,CAAsB;wBAC/C,YAAYG;wBACZ,OAAO;4BACHD;wBACJ;oBACJ;oBAGJ,MAAMF,WAAW,MAAM,CAAC,IAAI,CAAC;wBACzB,SAAS,CAAC,mCAAmC,EAAES,YAAY;wBAC3D,MAAM;4BACF,MAAMA;wBACV;oBACJ;gBACJ;gBAEA,OAAOT,WAAW,QAAQ,CAAC,IAAI,CAC3B;YAER;YAQA,IAAID,MAAM,IAAI,EAAE;gBACZ,MAAME,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;oBAC1C,OAAO;wBACH,MAAMF,MAAM,IAAI;wBAChB,UAAU;oBACd;gBACJ;gBACA,IAAIE,OAAO,MAAM,IACb,OAAOD,WAAW,QAAQ,CAAC,KAAK,CAACC,OAAO,KAAK;gBAGjD,MAAM,EAAES,OAAO,EAAE,GAAGT,OAAO,KAAK;gBAEhC,KAAK,MAAMC,UAAUQ,QACjB,MAAMV,WAAW,IAAI,CAAC,OAAO,CAAsB;oBAC/C,YAAYG;oBACZ,OAAO;wBACHD;oBACJ;gBACJ;gBAGJ,OAAOF,WAAW,QAAQ,CAAC,IAAI,CAC3B,CAAC,uDAAuD,EAAED,MAAM,IAAI,CAAC,sCAAsC,CAAC;YAEpH;YAEA,OAAOC,WAAW,QAAQ,CAAC,KAAK,CAC5B;QAER,EAAE,OAAOW,OAAO;YACZ,OAAOX,WAAW,QAAQ,CAAC,KAAK,CAACW;QACrC;IACJ;AACJ;AAEA,MAAMC,qBAAqBC,YAAY,oBAAoB,CAAC;IACxD,gBAAgBlB;IAChB,cAAc;QAACmB;QAAkBC;QAAoBC;KAAkB;AAC3E;AAEA,MAAMC;;aACc,EAAE,GAAGC;aACL,KAAK,GAAG;aACR,WAAW,GACvB;aACY,YAAY,GAAG;aACf,SAAS,GAAG;aACZ,WAAW,GAAG;YAAC;YAAsB;SAAmB;aAExE,OAAO,GAAGN;;AACd;AAEO,MAAMO,cAAcC,eAAe,oBAAoB,CAAC;IAC3D,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
|
-
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
2
|
import { type IUpdateFlpTaskInput } from "../../types.js";
|
|
3
3
|
import { UpdateFlpUseCase } from "../../features/flp/UpdateFlp/index.js";
|
|
4
|
-
|
|
4
|
+
import { NotifyFolderChangeUseCase } from "../../features/folder/NotifyFolderChange/index.js";
|
|
5
|
+
declare class UpdateFlpTaskHandlerImpl implements TaskHandler.Interface<IUpdateFlpTaskInput> {
|
|
5
6
|
private updateFlp;
|
|
7
|
+
private notifyFolderChange;
|
|
8
|
+
constructor(updateFlp: UpdateFlpUseCase.Interface, notifyFolderChange: NotifyFolderChangeUseCase.Interface);
|
|
9
|
+
run({ input, controller }: TaskHandler.RunParams<IUpdateFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | TaskDefinition.ResultContinue<IUpdateFlpTaskInput> | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
10
|
+
}
|
|
11
|
+
declare class UpdateFlpTaskImpl implements TaskDefinition.Interface {
|
|
6
12
|
readonly id = "acoUpdateFlp";
|
|
7
13
|
readonly title = "ACO - Update FLP record";
|
|
8
14
|
readonly description = "Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.";
|
|
9
15
|
readonly databaseLogs = false;
|
|
10
16
|
readonly isPrivate = true;
|
|
11
17
|
readonly selfCleanup: ("onAbort" | "onSuccess")[];
|
|
12
|
-
|
|
13
|
-
|
|
18
|
+
handler: typeof UpdateFlpTaskHandlerImpl & {
|
|
19
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
20
|
+
};
|
|
14
21
|
}
|
|
15
22
|
export declare const UpdateFlpTask: typeof UpdateFlpTaskImpl & {
|
|
16
23
|
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|