@webiny/app-aco 5.42.4-beta.0 → 5.43.0-beta.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.
- package/components/AdvancedSearch/domain/Filter.d.ts +24 -24
- package/components/FolderTree/List/index.js +34 -27
- package/components/FolderTree/List/index.js.map +1 -1
- package/components/FolderTree/Node/index.d.ts +3 -1
- package/components/FolderTree/Node/index.js +46 -17
- package/components/FolderTree/Node/index.js.map +1 -1
- package/components/FolderTree/Node/styled.d.ts +5 -0
- package/components/FolderTree/Node/styled.js +38 -20
- package/components/FolderTree/Node/styled.js.map +1 -1
- package/components/FolderTree/index.js +11 -15
- package/components/FolderTree/index.js.map +1 -1
- package/contexts/acoList.js +14 -11
- package/contexts/acoList.js.map +1 -1
- package/contexts/navigateFolder.d.ts +1 -1
- package/contexts/navigateFolder.js +1 -1
- package/contexts/navigateFolder.js.map +1 -1
- package/features/folders/cache/ListCache.js +2 -1
- package/features/folders/cache/ListCache.js.map +1 -1
- package/features/folders/cache/LoadedCache.d.ts +13 -0
- package/features/folders/cache/LoadedCache.js +59 -0
- package/features/folders/cache/LoadedCache.js.map +1 -0
- package/features/folders/cache/LoadedFoldersCacheFactory.d.ts +7 -0
- package/features/folders/cache/LoadedFoldersCacheFactory.js +35 -0
- package/features/folders/cache/LoadedFoldersCacheFactory.js.map +1 -0
- package/features/folders/cache/index.d.ts +2 -0
- package/features/folders/cache/index.js +22 -0
- package/features/folders/cache/index.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsRepository.d.ts +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.d.ts +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespace.d.ts +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId.d.ts +1 -1
- package/features/folders/getFolderExtensionsFields/useGetFolderExtensionsFields.d.ts +1 -1
- package/features/folders/getFolderHierarchy/FolderDto.d.ts +25 -0
- package/features/folders/getFolderHierarchy/FolderDto.js +50 -0
- package/features/folders/getFolderHierarchy/FolderDto.js.map +1 -0
- package/features/folders/getFolderHierarchy/FolderGqlDto.d.ts +20 -0
- package/features/folders/getFolderHierarchy/FolderGqlDto.js +7 -0
- package/features/folders/getFolderHierarchy/FolderGqlDto.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.d.ts +14 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.js +37 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.test.d.ts +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.test.js +207 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.test.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.d.ts +31 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js +82 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyRepository.d.ts +12 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyRepository.js +48 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.d.ts +7 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.js +26 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCaseWithLoading.d.ts +8 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCaseWithLoading.js +25 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCaseWithLoading.js.map +1 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyGateway.d.ts +12 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyGateway.js +7 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyGateway.js.map +1 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyRepository.d.ts +6 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyRepository.js +7 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyRepository.js.map +1 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyUseCase.d.ts +6 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyUseCase.js +7 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyUseCase.js.map +1 -0
- package/features/folders/getFolderHierarchy/index.d.ts +1 -0
- package/features/folders/getFolderHierarchy/index.js +18 -0
- package/features/folders/getFolderHierarchy/index.js.map +1 -0
- package/features/folders/getFolderHierarchy/useGetFolderHierarchy.d.ts +6 -0
- package/features/folders/getFolderHierarchy/useGetFolderHierarchy.js +65 -0
- package/features/folders/getFolderHierarchy/useGetFolderHierarchy.js.map +1 -0
- package/features/folders/index.d.ts +2 -0
- package/features/folders/index.js +22 -0
- package/features/folders/index.js.map +1 -1
- package/features/folders/listFolders/useListFolders.js +3 -8
- package/features/folders/listFolders/useListFolders.js.map +1 -1
- package/features/folders/listFoldersByParentIds/FolderDto.d.ts +25 -0
- package/features/folders/listFoldersByParentIds/FolderDto.js +50 -0
- package/features/folders/listFoldersByParentIds/FolderDto.js.map +1 -0
- package/features/folders/listFoldersByParentIds/FolderGqlDto.d.ts +20 -0
- package/features/folders/listFoldersByParentIds/FolderGqlDto.js +7 -0
- package/features/folders/listFoldersByParentIds/FolderGqlDto.js.map +1 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsGateway.d.ts +8 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsGateway.js +7 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsGateway.js.map +1 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsRepository.d.ts +6 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsRepository.js +7 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsRepository.js.map +1 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsUseCase.d.ts +6 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsUseCase.js +7 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsUseCase.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.d.ts +14 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.js +39 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.d.ts +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js +248 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.d.ts +26 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js +86 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.d.ts +11 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js +32 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepositoryWithLoadedCache.d.ts +8 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepositoryWithLoadedCache.js +39 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepositoryWithLoadedCache.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.d.ts +8 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js +34 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading.d.ts +10 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading.js +37 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading.js.map +1 -0
- package/features/folders/listFoldersByParentIds/index.d.ts +1 -0
- package/features/folders/listFoldersByParentIds/index.js +18 -0
- package/features/folders/listFoldersByParentIds/index.js.map +1 -0
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.d.ts +6 -0
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js +65 -0
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js.map +1 -0
- package/handlers.d.ts +1 -1
- package/package.json +17 -18
- package/types.d.ts +10 -10
- package/types.js +12 -11
- package/types.js.map +1 -1
- package/components/FolderTree/Empty/index.d.ts +0 -2
- package/components/FolderTree/Empty/index.js +0 -21
- package/components/FolderTree/Empty/index.js.map +0 -1
- package/components/FolderTree/Empty/styled.d.ts +0 -5
- package/components/FolderTree/Empty/styled.js +0 -25
- package/components/FolderTree/Empty/styled.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_mobx","_reactHooks","
|
|
1
|
+
{"version":3,"names":["_react","require","_mobx","_reactHooks","_ListFoldersGqlGateway","_ListFolders","_FolderDto","_hooks","useListFolders","exports","client","useApolloClient","type","useFoldersType","fields","useGetFolderGraphQLSelection","gateway","ListFoldersGqlGateway","_useState","useState","folders","loading","INIT","_useState2","_slicedToArray2","default","vm","setVm","_useMemo","useMemo","ListFolders","getInstance","useCase","foldersCache","listFolders","useCallback","execute","useEffect","autorun","getItems","map","folder","FolderDtoMapper","toDTO","_objectSpread2","loadingState","get"],"sources":["useListFolders.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { ListFoldersGqlGateway } from \"./ListFoldersGqlGateway\";\nimport { ListFolders } from \"./ListFolders\";\nimport { FolderDtoMapper } from \"./FolderDto\";\nimport { useFoldersType, useGetFolderGraphQLSelection } from \"~/hooks\";\nimport { FolderItem } from \"~/types\";\n\nexport const useListFolders = () => {\n const client = useApolloClient();\n const type = useFoldersType();\n const fields = useGetFolderGraphQLSelection();\n const gateway = new ListFoldersGqlGateway(client, fields);\n\n const [vm, setVm] = useState<{\n folders: FolderItem[];\n loading: Record<string, boolean>;\n }>({\n folders: [],\n loading: {\n INIT: true\n }\n });\n\n const {\n useCase,\n folders: foldersCache,\n loading\n } = useMemo(() => {\n return ListFolders.getInstance(type, gateway);\n }, [type, gateway]);\n\n const listFolders = useCallback(() => {\n return useCase.execute();\n }, [useCase]);\n\n useEffect(() => {\n return autorun(() => {\n const folders = foldersCache.getItems().map(folder => FolderDtoMapper.toDTO(folder));\n\n setVm(vm => ({\n ...vm,\n folders\n }));\n });\n }, [foldersCache]);\n\n useEffect(() => {\n return autorun(() => {\n const loadingState = loading.get();\n\n setVm(vm => ({\n ...vm,\n loading: loadingState\n }));\n });\n }, [loading]);\n\n return {\n ...vm,\n listFolders\n };\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAGO,IAAMO,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAA,EAAS;EAChC,IAAME,MAAM,GAAG,IAAAC,2BAAe,EAAC,CAAC;EAChC,IAAMC,IAAI,GAAG,IAAAC,qBAAc,EAAC,CAAC;EAC7B,IAAMC,MAAM,GAAG,IAAAC,mCAA4B,EAAC,CAAC;EAC7C,IAAMC,OAAO,GAAG,IAAIC,4CAAqB,CAACP,MAAM,EAAEI,MAAM,CAAC;EAEzD,IAAAI,SAAA,GAAoB,IAAAC,eAAQ,EAGzB;MACCC,OAAO,EAAE,EAAE;MACXC,OAAO,EAAE;QACLC,IAAI,EAAE;MACV;IACJ,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAP,SAAA;IARKQ,EAAE,GAAAH,UAAA;IAAEI,KAAK,GAAAJ,UAAA;EAUhB,IAAAK,QAAA,GAII,IAAAC,cAAO,EAAC,YAAM;MACd,OAAOC,wBAAW,CAACC,WAAW,CAACnB,IAAI,EAAEI,OAAO,CAAC;IACjD,CAAC,EAAE,CAACJ,IAAI,EAAEI,OAAO,CAAC,CAAC;IALfgB,OAAO,GAAAJ,QAAA,CAAPI,OAAO;IACEC,YAAY,GAAAL,QAAA,CAArBR,OAAO;IACPC,OAAO,GAAAO,QAAA,CAAPP,OAAO;EAKX,IAAMa,WAAW,GAAG,IAAAC,kBAAW,EAAC,YAAM;IAClC,OAAOH,OAAO,CAACI,OAAO,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACJ,OAAO,CAAC,CAAC;EAEb,IAAAK,gBAAS,EAAC,YAAM;IACZ,OAAO,IAAAC,aAAO,EAAC,YAAM;MACjB,IAAMlB,OAAO,GAAGa,YAAY,CAACM,QAAQ,CAAC,CAAC,CAACC,GAAG,CAAC,UAAAC,MAAM;QAAA,OAAIC,0BAAe,CAACC,KAAK,CAACF,MAAM,CAAC;MAAA,EAAC;MAEpFd,KAAK,CAAC,UAAAD,EAAE;QAAA,WAAAkB,cAAA,CAAAnB,OAAA,MAAAmB,cAAA,CAAAnB,OAAA,MACDC,EAAE;UACLN,OAAO,EAAPA;QAAO;MAAA,CACT,CAAC;IACP,CAAC,CAAC;EACN,CAAC,EAAE,CAACa,YAAY,CAAC,CAAC;EAElB,IAAAI,gBAAS,EAAC,YAAM;IACZ,OAAO,IAAAC,aAAO,EAAC,YAAM;MACjB,IAAMO,YAAY,GAAGxB,OAAO,CAACyB,GAAG,CAAC,CAAC;MAElCnB,KAAK,CAAC,UAAAD,EAAE;QAAA,WAAAkB,cAAA,CAAAnB,OAAA,MAAAmB,cAAA,CAAAnB,OAAA,MACDC,EAAE;UACLL,OAAO,EAAEwB;QAAY;MAAA,CACvB,CAAC;IACP,CAAC,CAAC;EACN,CAAC,EAAE,CAACxB,OAAO,CAAC,CAAC;EAEb,WAAAuB,cAAA,CAAAnB,OAAA,MAAAmB,cAAA,CAAAnB,OAAA,MACOC,EAAE;IACLQ,WAAW,EAAXA;EAAW;AAEnB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CmsIdentity, FolderPermission } from "../../../types";
|
|
2
|
+
import { Folder } from "../Folder";
|
|
3
|
+
export interface FolderDto {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
slug: string;
|
|
7
|
+
type: string;
|
|
8
|
+
parentId: string;
|
|
9
|
+
permissions: FolderPermission[];
|
|
10
|
+
hasNonInheritedPermissions: boolean;
|
|
11
|
+
canManagePermissions: boolean;
|
|
12
|
+
canManageStructure: boolean;
|
|
13
|
+
canManageContent: boolean;
|
|
14
|
+
createdBy: CmsIdentity;
|
|
15
|
+
createdOn: string;
|
|
16
|
+
savedBy: CmsIdentity;
|
|
17
|
+
savedOn: string;
|
|
18
|
+
modifiedBy: CmsIdentity;
|
|
19
|
+
modifiedOn: string;
|
|
20
|
+
extensions: Record<string, any>;
|
|
21
|
+
}
|
|
22
|
+
export declare class FolderDtoMapper {
|
|
23
|
+
static toDTO(folder: Folder): FolderDto;
|
|
24
|
+
private static createIdentity;
|
|
25
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FolderDtoMapper = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _constants = require("../../../constants");
|
|
11
|
+
var FolderDtoMapper = exports.FolderDtoMapper = /*#__PURE__*/function () {
|
|
12
|
+
function FolderDtoMapper() {
|
|
13
|
+
(0, _classCallCheck2.default)(this, FolderDtoMapper);
|
|
14
|
+
}
|
|
15
|
+
return (0, _createClass2.default)(FolderDtoMapper, null, [{
|
|
16
|
+
key: "toDTO",
|
|
17
|
+
value: function toDTO(folder) {
|
|
18
|
+
return {
|
|
19
|
+
id: folder.id,
|
|
20
|
+
title: folder.title,
|
|
21
|
+
canManageContent: folder.canManageContent ?? false,
|
|
22
|
+
canManagePermissions: folder.canManagePermissions ?? false,
|
|
23
|
+
canManageStructure: folder.canManageStructure ?? false,
|
|
24
|
+
createdBy: this.createIdentity(folder.createdBy),
|
|
25
|
+
createdOn: folder.createdOn ?? "",
|
|
26
|
+
hasNonInheritedPermissions: folder.hasNonInheritedPermissions ?? false,
|
|
27
|
+
modifiedBy: this.createIdentity(folder.modifiedBy),
|
|
28
|
+
modifiedOn: folder.modifiedOn ?? "",
|
|
29
|
+
parentId: folder.parentId ?? _constants.ROOT_FOLDER,
|
|
30
|
+
permissions: folder.permissions ?? [],
|
|
31
|
+
savedBy: this.createIdentity(folder.savedBy),
|
|
32
|
+
savedOn: folder.savedOn ?? "",
|
|
33
|
+
slug: folder.slug,
|
|
34
|
+
type: folder.type,
|
|
35
|
+
extensions: folder.extensions ?? {}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}, {
|
|
39
|
+
key: "createIdentity",
|
|
40
|
+
value: function createIdentity(identity) {
|
|
41
|
+
return {
|
|
42
|
+
id: identity?.id || "",
|
|
43
|
+
displayName: identity?.displayName || "",
|
|
44
|
+
type: identity?.type || ""
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}]);
|
|
48
|
+
}();
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=FolderDto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_constants","require","FolderDtoMapper","exports","_classCallCheck2","default","_createClass2","key","value","toDTO","folder","id","title","canManageContent","canManagePermissions","canManageStructure","createdBy","createIdentity","createdOn","hasNonInheritedPermissions","modifiedBy","modifiedOn","parentId","ROOT_FOLDER","permissions","savedBy","savedOn","slug","type","extensions","identity","displayName"],"sources":["FolderDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\nimport { Folder } from \"../Folder\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface FolderDto {\n id: string;\n title: string;\n slug: string;\n type: string;\n parentId: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity;\n modifiedOn: string;\n extensions: Record<string, any>;\n}\n\nexport class FolderDtoMapper {\n static toDTO(folder: Folder): FolderDto {\n return {\n id: folder.id,\n title: folder.title,\n canManageContent: folder.canManageContent ?? false,\n canManagePermissions: folder.canManagePermissions ?? false,\n canManageStructure: folder.canManageStructure ?? false,\n createdBy: this.createIdentity(folder.createdBy),\n createdOn: folder.createdOn ?? \"\",\n hasNonInheritedPermissions: folder.hasNonInheritedPermissions ?? false,\n modifiedBy: this.createIdentity(folder.modifiedBy),\n modifiedOn: folder.modifiedOn ?? \"\",\n parentId: folder.parentId ?? ROOT_FOLDER,\n permissions: folder.permissions ?? [],\n savedBy: this.createIdentity(folder.savedBy),\n savedOn: folder.savedOn ?? \"\",\n slug: folder.slug,\n type: folder.type,\n extensions: folder.extensions ?? {}\n };\n }\n\n private static createIdentity(identity?: CmsIdentity | null): CmsIdentity {\n return {\n id: identity?.id || \"\",\n displayName: identity?.displayName || \"\",\n type: identity?.type || \"\"\n };\n }\n}\n"],"mappings":";;;;;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAA0C,IAsB7BC,eAAe,GAAAC,OAAA,CAAAD,eAAA;EAAA,SAAAA,gBAAA;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,eAAA;EAAA;EAAA,WAAAI,aAAA,CAAAD,OAAA,EAAAH,eAAA;IAAAK,GAAA;IAAAC,KAAA,EACxB,SAAOC,KAAKA,CAACC,MAAc,EAAa;MACpC,OAAO;QACHC,EAAE,EAAED,MAAM,CAACC,EAAE;QACbC,KAAK,EAAEF,MAAM,CAACE,KAAK;QACnBC,gBAAgB,EAAEH,MAAM,CAACG,gBAAgB,IAAI,KAAK;QAClDC,oBAAoB,EAAEJ,MAAM,CAACI,oBAAoB,IAAI,KAAK;QAC1DC,kBAAkB,EAAEL,MAAM,CAACK,kBAAkB,IAAI,KAAK;QACtDC,SAAS,EAAE,IAAI,CAACC,cAAc,CAACP,MAAM,CAACM,SAAS,CAAC;QAChDE,SAAS,EAAER,MAAM,CAACQ,SAAS,IAAI,EAAE;QACjCC,0BAA0B,EAAET,MAAM,CAACS,0BAA0B,IAAI,KAAK;QACtEC,UAAU,EAAE,IAAI,CAACH,cAAc,CAACP,MAAM,CAACU,UAAU,CAAC;QAClDC,UAAU,EAAEX,MAAM,CAACW,UAAU,IAAI,EAAE;QACnCC,QAAQ,EAAEZ,MAAM,CAACY,QAAQ,IAAIC,sBAAW;QACxCC,WAAW,EAAEd,MAAM,CAACc,WAAW,IAAI,EAAE;QACrCC,OAAO,EAAE,IAAI,CAACR,cAAc,CAACP,MAAM,CAACe,OAAO,CAAC;QAC5CC,OAAO,EAAEhB,MAAM,CAACgB,OAAO,IAAI,EAAE;QAC7BC,IAAI,EAAEjB,MAAM,CAACiB,IAAI;QACjBC,IAAI,EAAElB,MAAM,CAACkB,IAAI;QACjBC,UAAU,EAAEnB,MAAM,CAACmB,UAAU,IAAI,CAAC;MACtC,CAAC;IACL;EAAC;IAAAtB,GAAA;IAAAC,KAAA,EAED,SAAeS,cAAcA,CAACa,QAA6B,EAAe;MACtE,OAAO;QACHnB,EAAE,EAAEmB,QAAQ,EAAEnB,EAAE,IAAI,EAAE;QACtBoB,WAAW,EAAED,QAAQ,EAAEC,WAAW,IAAI,EAAE;QACxCH,IAAI,EAAEE,QAAQ,EAAEF,IAAI,IAAI;MAC5B,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CmsIdentity, FolderPermission } from "../../../types";
|
|
2
|
+
export interface FolderGqlDto {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
permissions: FolderPermission[];
|
|
7
|
+
hasNonInheritedPermissions: boolean;
|
|
8
|
+
canManagePermissions: boolean;
|
|
9
|
+
canManageStructure: boolean;
|
|
10
|
+
canManageContent: boolean;
|
|
11
|
+
type: string;
|
|
12
|
+
parentId: string | null;
|
|
13
|
+
createdBy: CmsIdentity;
|
|
14
|
+
createdOn: string;
|
|
15
|
+
savedBy: CmsIdentity;
|
|
16
|
+
savedOn: string;
|
|
17
|
+
modifiedBy: CmsIdentity | null;
|
|
18
|
+
modifiedOn: string | null;
|
|
19
|
+
extensions: Record<string, any>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["FolderGqlDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\n\nexport interface FolderGqlDto {\n id: string;\n title: string;\n slug: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n type: string;\n parentId: string | null;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity | null;\n modifiedOn: string | null;\n extensions: Record<string, any>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FolderGqlDto } from "./FolderGqlDto";
|
|
2
|
+
export interface ListFoldersByParentIdsGatewayParams {
|
|
3
|
+
type: string;
|
|
4
|
+
parentIds: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface IListFoldersByParentIdsGateway {
|
|
7
|
+
execute: (params: ListFoldersByParentIdsGatewayParams) => Promise<FolderGqlDto[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["IListFoldersByParentIdsGateway.ts"],"sourcesContent":["import { FolderGqlDto } from \"./FolderGqlDto\";\n\nexport interface ListFoldersByParentIdsGatewayParams {\n type: string;\n parentIds: string[];\n}\n\nexport interface IListFoldersByParentIdsGateway {\n execute: (params: ListFoldersByParentIdsGatewayParams) => Promise<FolderGqlDto[]>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["IListFoldersByParentIdsRepository.ts"],"sourcesContent":["export interface ListFoldersByParentIdsRepositoryParams {\n parentIds: string[];\n}\n\nexport interface IListFoldersByParentIdsRepository {\n execute: (params: ListFoldersByParentIdsRepositoryParams) => Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["IListFoldersByParentIdsUseCase.ts"],"sourcesContent":["export interface ListFoldersByParentIdsUseCaseParams {\n parentIds?: string[];\n}\n\nexport interface IListFoldersByParentIdsUseCase {\n execute: (params: ListFoldersByParentIdsUseCaseParams) => Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LoadingRepository } from "@webiny/app-utils";
|
|
2
|
+
import { IListFoldersByParentIdsGateway } from "./IListFoldersByParentIdsGateway";
|
|
3
|
+
import { IListFoldersByParentIdsUseCase } from "./IListFoldersByParentIdsUseCase";
|
|
4
|
+
import { ListCache } from "../cache";
|
|
5
|
+
import { Folder } from "../Folder";
|
|
6
|
+
interface IListFoldersByParentIdsInstance {
|
|
7
|
+
useCase: IListFoldersByParentIdsUseCase;
|
|
8
|
+
folders: ListCache<Folder>;
|
|
9
|
+
loading: LoadingRepository;
|
|
10
|
+
}
|
|
11
|
+
export declare class ListFoldersByParentIds {
|
|
12
|
+
static getInstance(type: string, gateway: IListFoldersByParentIdsGateway): IListFoldersByParentIdsInstance;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ListFoldersByParentIds = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _appUtils = require("@webiny/app-utils");
|
|
11
|
+
var _ListFoldersByParentIdsRepository = require("./ListFoldersByParentIdsRepository");
|
|
12
|
+
var _ListFoldersByParentIdsRepositoryWithLoadedCache = require("./ListFoldersByParentIdsRepositoryWithLoadedCache");
|
|
13
|
+
var _ListFoldersByParentIdsUseCase = require("./ListFoldersByParentIdsUseCase");
|
|
14
|
+
var _cache = require("../cache");
|
|
15
|
+
var _ListFoldersByParentIdsUseCaseWithLoading = require("./ListFoldersByParentIdsUseCaseWithLoading");
|
|
16
|
+
var ListFoldersByParentIds = exports.ListFoldersByParentIds = /*#__PURE__*/function () {
|
|
17
|
+
function ListFoldersByParentIds() {
|
|
18
|
+
(0, _classCallCheck2.default)(this, ListFoldersByParentIds);
|
|
19
|
+
}
|
|
20
|
+
return (0, _createClass2.default)(ListFoldersByParentIds, null, [{
|
|
21
|
+
key: "getInstance",
|
|
22
|
+
value: function getInstance(type, gateway) {
|
|
23
|
+
var foldersCache = _cache.folderCacheFactory.getCache(type);
|
|
24
|
+
var loadedCache = _cache.loadedFolderCacheFactory.getCache(type);
|
|
25
|
+
var loadingRepository = _appUtils.loadingRepositoryFactory.getRepository(type);
|
|
26
|
+
var repository = new _ListFoldersByParentIdsRepository.ListFoldersByParentIdsRepository(foldersCache, gateway, type);
|
|
27
|
+
var repositoryWithLoadedCache = new _ListFoldersByParentIdsRepositoryWithLoadedCache.ListFoldersByParentIdsRepositoryWithLoadedCache(loadedCache, repository);
|
|
28
|
+
var useCase = new _ListFoldersByParentIdsUseCase.ListFoldersByParentIdsUseCase(repositoryWithLoadedCache);
|
|
29
|
+
var useCaseWithLoading = new _ListFoldersByParentIdsUseCaseWithLoading.ListFoldersByParentIdsUseCaseWithLoading(loadingRepository, loadedCache, useCase);
|
|
30
|
+
return {
|
|
31
|
+
useCase: useCaseWithLoading,
|
|
32
|
+
folders: foldersCache,
|
|
33
|
+
loading: loadingRepository
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}]);
|
|
37
|
+
}();
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=ListFoldersByParentIds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_appUtils","require","_ListFoldersByParentIdsRepository","_ListFoldersByParentIdsRepositoryWithLoadedCache","_ListFoldersByParentIdsUseCase","_cache","_ListFoldersByParentIdsUseCaseWithLoading","ListFoldersByParentIds","exports","_classCallCheck2","default","_createClass2","key","value","getInstance","type","gateway","foldersCache","folderCacheFactory","getCache","loadedCache","loadedFolderCacheFactory","loadingRepository","loadingRepositoryFactory","getRepository","repository","ListFoldersByParentIdsRepository","repositoryWithLoadedCache","ListFoldersByParentIdsRepositoryWithLoadedCache","useCase","ListFoldersByParentIdsUseCase","useCaseWithLoading","ListFoldersByParentIdsUseCaseWithLoading","folders","loading"],"sources":["ListFoldersByParentIds.ts"],"sourcesContent":["import { LoadingRepository, loadingRepositoryFactory } from \"@webiny/app-utils\";\nimport { IListFoldersByParentIdsGateway } from \"./IListFoldersByParentIdsGateway\";\nimport { IListFoldersByParentIdsUseCase } from \"./IListFoldersByParentIdsUseCase\";\nimport { ListFoldersByParentIdsRepository } from \"./ListFoldersByParentIdsRepository\";\nimport { ListFoldersByParentIdsRepositoryWithLoadedCache } from \"./ListFoldersByParentIdsRepositoryWithLoadedCache\";\nimport { ListFoldersByParentIdsUseCase } from \"./ListFoldersByParentIdsUseCase\";\nimport { folderCacheFactory, ListCache, loadedFolderCacheFactory } from \"../cache\";\nimport { Folder } from \"../Folder\";\nimport { ListFoldersByParentIdsUseCaseWithLoading } from \"~/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading\";\n\ninterface IListFoldersByParentIdsInstance {\n useCase: IListFoldersByParentIdsUseCase;\n folders: ListCache<Folder>;\n loading: LoadingRepository;\n}\n\nexport class ListFoldersByParentIds {\n public static getInstance(\n type: string,\n gateway: IListFoldersByParentIdsGateway\n ): IListFoldersByParentIdsInstance {\n const foldersCache = folderCacheFactory.getCache(type);\n const loadedCache = loadedFolderCacheFactory.getCache(type);\n const loadingRepository = loadingRepositoryFactory.getRepository(type);\n const repository = new ListFoldersByParentIdsRepository(foldersCache, gateway, type);\n const repositoryWithLoadedCache = new ListFoldersByParentIdsRepositoryWithLoadedCache(\n loadedCache,\n repository\n );\n const useCase = new ListFoldersByParentIdsUseCase(repositoryWithLoadedCache);\n const useCaseWithLoading = new ListFoldersByParentIdsUseCaseWithLoading(\n loadingRepository,\n loadedCache,\n useCase\n );\n\n return {\n useCase: useCaseWithLoading,\n folders: foldersCache,\n loading: loadingRepository\n };\n }\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAGA,IAAAC,iCAAA,GAAAD,OAAA;AACA,IAAAE,gDAAA,GAAAF,OAAA;AACA,IAAAG,8BAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,yCAAA,GAAAL,OAAA;AAA8I,IAQjIM,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA;EAAA,SAAAA,uBAAA;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,sBAAA;EAAA;EAAA,WAAAI,aAAA,CAAAD,OAAA,EAAAH,sBAAA;IAAAK,GAAA;IAAAC,KAAA,EAC/B,SAAcC,WAAWA,CACrBC,IAAY,EACZC,OAAuC,EACR;MAC/B,IAAMC,YAAY,GAAGC,yBAAkB,CAACC,QAAQ,CAACJ,IAAI,CAAC;MACtD,IAAMK,WAAW,GAAGC,+BAAwB,CAACF,QAAQ,CAACJ,IAAI,CAAC;MAC3D,IAAMO,iBAAiB,GAAGC,kCAAwB,CAACC,aAAa,CAACT,IAAI,CAAC;MACtE,IAAMU,UAAU,GAAG,IAAIC,kEAAgC,CAACT,YAAY,EAAED,OAAO,EAAED,IAAI,CAAC;MACpF,IAAMY,yBAAyB,GAAG,IAAIC,gGAA+C,CACjFR,WAAW,EACXK,UACJ,CAAC;MACD,IAAMI,OAAO,GAAG,IAAIC,4DAA6B,CAACH,yBAAyB,CAAC;MAC5E,IAAMI,kBAAkB,GAAG,IAAIC,kFAAwC,CACnEV,iBAAiB,EACjBF,WAAW,EACXS,OACJ,CAAC;MAED,OAAO;QACHA,OAAO,EAAEE,kBAAkB;QAC3BE,OAAO,EAAEhB,YAAY;QACrBiB,OAAO,EAAEZ;MACb,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _ListFoldersByParentIds = require("./ListFoldersByParentIds");
|
|
4
|
+
var _FoldersCacheFactory = require("../cache/FoldersCacheFactory");
|
|
5
|
+
var _LoadedFoldersCacheFactory = require("../cache/LoadedFoldersCacheFactory");
|
|
6
|
+
var _constants = require("../../../constants");
|
|
7
|
+
describe("ListFoldersByParentIds", function () {
|
|
8
|
+
var type = "abc";
|
|
9
|
+
var foldersCache = _FoldersCacheFactory.folderCacheFactory.getCache(type);
|
|
10
|
+
var loadedFoldersCache = _LoadedFoldersCacheFactory.loadedFolderCacheFactory.getCache(type);
|
|
11
|
+
beforeEach(function () {
|
|
12
|
+
foldersCache.clear();
|
|
13
|
+
loadedFoldersCache.clear();
|
|
14
|
+
jest.resetAllMocks();
|
|
15
|
+
});
|
|
16
|
+
it("should list folders from `ROOT` level if parentIds is `undefined`", async function () {
|
|
17
|
+
var gateway = {
|
|
18
|
+
execute: jest.fn().mockResolvedValue([{
|
|
19
|
+
id: "folder-1",
|
|
20
|
+
title: "Folder 1",
|
|
21
|
+
slug: "folder-1",
|
|
22
|
+
parentId: null,
|
|
23
|
+
type: type
|
|
24
|
+
}, {
|
|
25
|
+
id: "folder-2",
|
|
26
|
+
title: "Folder 2",
|
|
27
|
+
slug: "folder-2",
|
|
28
|
+
parentId: null,
|
|
29
|
+
type: type
|
|
30
|
+
}, {
|
|
31
|
+
id: "folder-3",
|
|
32
|
+
title: "Folder 3",
|
|
33
|
+
slug: "folder-3",
|
|
34
|
+
parentId: null,
|
|
35
|
+
type: type
|
|
36
|
+
}])
|
|
37
|
+
};
|
|
38
|
+
var listByParentIdFolders = _ListFoldersByParentIds.ListFoldersByParentIds.getInstance(type, gateway);
|
|
39
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
40
|
+
await listByParentIdFolders.useCase.execute({
|
|
41
|
+
parentIds: undefined
|
|
42
|
+
});
|
|
43
|
+
expect(gateway.execute).toHaveBeenCalledTimes(1);
|
|
44
|
+
expect(gateway.execute).toHaveBeenCalledWith({
|
|
45
|
+
parentIds: [_constants.ROOT_FOLDER],
|
|
46
|
+
type: type
|
|
47
|
+
});
|
|
48
|
+
expect(foldersCache.hasItems()).toBeTrue();
|
|
49
|
+
expect(foldersCache.count()).toEqual(3);
|
|
50
|
+
|
|
51
|
+
// This call should be idempotent: the number of elements in cache should not change
|
|
52
|
+
await listByParentIdFolders.useCase.execute({
|
|
53
|
+
parentIds: undefined
|
|
54
|
+
});
|
|
55
|
+
expect(foldersCache.count()).toEqual(3);
|
|
56
|
+
});
|
|
57
|
+
it("should list folders from the provided `parentIds`", async function () {
|
|
58
|
+
var gateway = {
|
|
59
|
+
execute: jest.fn().mockImplementationOnce(function () {
|
|
60
|
+
return Promise.resolve([{
|
|
61
|
+
id: "folder-1",
|
|
62
|
+
title: "Folder 1",
|
|
63
|
+
slug: "folder-1",
|
|
64
|
+
parentId: "folder-0",
|
|
65
|
+
type: type
|
|
66
|
+
}, {
|
|
67
|
+
id: "folder-2",
|
|
68
|
+
title: "Folder 2",
|
|
69
|
+
slug: "folder-1",
|
|
70
|
+
parentId: "folder-0",
|
|
71
|
+
type: type
|
|
72
|
+
}, {
|
|
73
|
+
id: "folder-3",
|
|
74
|
+
title: "Folder 3",
|
|
75
|
+
slug: "folder-3",
|
|
76
|
+
parentId: "folder-0",
|
|
77
|
+
type: type
|
|
78
|
+
}]);
|
|
79
|
+
}).mockImplementationOnce(function () {
|
|
80
|
+
return Promise.resolve([{
|
|
81
|
+
id: "folder-4",
|
|
82
|
+
title: "Folder 4",
|
|
83
|
+
slug: "folder-4",
|
|
84
|
+
parentId: "folder-1",
|
|
85
|
+
type: type
|
|
86
|
+
}, {
|
|
87
|
+
id: "folder-5",
|
|
88
|
+
title: "Folder 5",
|
|
89
|
+
slug: "folder-5",
|
|
90
|
+
parentId: "folder-1",
|
|
91
|
+
type: type
|
|
92
|
+
}, {
|
|
93
|
+
id: "folder-6",
|
|
94
|
+
title: "Folder 6",
|
|
95
|
+
slug: "folder-6",
|
|
96
|
+
parentId: "folder-1",
|
|
97
|
+
type: type
|
|
98
|
+
}]);
|
|
99
|
+
})
|
|
100
|
+
};
|
|
101
|
+
var listByParentIdFolders = _ListFoldersByParentIds.ListFoldersByParentIds.getInstance(type, gateway);
|
|
102
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
103
|
+
await listByParentIdFolders.useCase.execute({
|
|
104
|
+
parentIds: ["folder-0"]
|
|
105
|
+
});
|
|
106
|
+
expect(gateway.execute).toHaveBeenCalledTimes(1);
|
|
107
|
+
expect(gateway.execute).toHaveBeenCalledWith({
|
|
108
|
+
parentIds: ["folder-0"],
|
|
109
|
+
type: type
|
|
110
|
+
});
|
|
111
|
+
expect(foldersCache.hasItems()).toBeTrue();
|
|
112
|
+
expect(foldersCache.count()).toEqual(3);
|
|
113
|
+
|
|
114
|
+
// The number of folders in cache should increase, since we are changing the parentIds
|
|
115
|
+
await listByParentIdFolders.useCase.execute({
|
|
116
|
+
parentIds: ["folder-1"]
|
|
117
|
+
});
|
|
118
|
+
expect(foldersCache.count()).toEqual(6);
|
|
119
|
+
});
|
|
120
|
+
it("should list folders from missing `parentIds` stored in cache", async function () {
|
|
121
|
+
var gateway = {
|
|
122
|
+
execute: jest.fn().mockImplementationOnce(function () {
|
|
123
|
+
return Promise.resolve([{
|
|
124
|
+
id: "folder-1",
|
|
125
|
+
title: "Folder 1",
|
|
126
|
+
slug: "folder-1",
|
|
127
|
+
parentId: "folder-0",
|
|
128
|
+
type: type
|
|
129
|
+
}, {
|
|
130
|
+
id: "folder-2",
|
|
131
|
+
title: "Folder 2",
|
|
132
|
+
slug: "folder-2",
|
|
133
|
+
parentId: "folder-1",
|
|
134
|
+
type: type
|
|
135
|
+
}]);
|
|
136
|
+
}).mockImplementationOnce(function () {
|
|
137
|
+
return Promise.resolve([{
|
|
138
|
+
id: "folder-3",
|
|
139
|
+
title: "Folder 3",
|
|
140
|
+
slug: "folder-3",
|
|
141
|
+
parentId: "folder-2",
|
|
142
|
+
type: type
|
|
143
|
+
}]);
|
|
144
|
+
})
|
|
145
|
+
};
|
|
146
|
+
var listByParentIdFolders = _ListFoldersByParentIds.ListFoldersByParentIds.getInstance(type, gateway);
|
|
147
|
+
|
|
148
|
+
// Execute the useCase 3 times and check the gateway is invoked only when needed
|
|
149
|
+
await listByParentIdFolders.useCase.execute({
|
|
150
|
+
parentIds: ["folder-0", "folder-1"]
|
|
151
|
+
});
|
|
152
|
+
await listByParentIdFolders.useCase.execute({
|
|
153
|
+
parentIds: ["folder-0", "folder-1", "folder-2"]
|
|
154
|
+
});
|
|
155
|
+
await listByParentIdFolders.useCase.execute({
|
|
156
|
+
parentIds: ["folder-0", "folder-1", "folder-2"]
|
|
157
|
+
});
|
|
158
|
+
expect(gateway.execute).toHaveBeenNthCalledWith(1, {
|
|
159
|
+
parentIds: ["folder-0", "folder-1"],
|
|
160
|
+
type: type
|
|
161
|
+
});
|
|
162
|
+
expect(gateway.execute).toHaveBeenNthCalledWith(2, {
|
|
163
|
+
parentIds: ["folder-2"],
|
|
164
|
+
type: type
|
|
165
|
+
});
|
|
166
|
+
expect(gateway.execute).not.toHaveBeenCalledTimes(3);
|
|
167
|
+
});
|
|
168
|
+
it("should return empty array if no folders are found", async function () {
|
|
169
|
+
var emptyGateway = {
|
|
170
|
+
execute: jest.fn().mockResolvedValue([])
|
|
171
|
+
};
|
|
172
|
+
var listByParentIdFolders = _ListFoldersByParentIds.ListFoldersByParentIds.getInstance(type, emptyGateway);
|
|
173
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
174
|
+
await listByParentIdFolders.useCase.execute({});
|
|
175
|
+
expect(emptyGateway.execute).toHaveBeenCalledTimes(1);
|
|
176
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
177
|
+
var items = foldersCache.getItems();
|
|
178
|
+
expect(items.length).toEqual(0);
|
|
179
|
+
});
|
|
180
|
+
it("should handle gateway errors gracefully", async function () {
|
|
181
|
+
var errorGateway = {
|
|
182
|
+
execute: jest.fn().mockRejectedValue(new Error("Gateway error"))
|
|
183
|
+
};
|
|
184
|
+
var listByParentIdFolders = _ListFoldersByParentIds.ListFoldersByParentIds.getInstance(type, errorGateway);
|
|
185
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
186
|
+
await expect(listByParentIdFolders.useCase.execute({})).rejects.toThrow("Gateway error");
|
|
187
|
+
expect(errorGateway.execute).toHaveBeenCalledTimes(1);
|
|
188
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
189
|
+
});
|
|
190
|
+
it("should clear cache when type changes", async function () {
|
|
191
|
+
var gatewayAbc = {
|
|
192
|
+
execute: jest.fn().mockResolvedValue([{
|
|
193
|
+
id: "folder-1",
|
|
194
|
+
title: "Folder 1",
|
|
195
|
+
slug: "folder-1",
|
|
196
|
+
parentId: null,
|
|
197
|
+
type: type
|
|
198
|
+
}, {
|
|
199
|
+
id: "folder-2",
|
|
200
|
+
title: "Folder 2",
|
|
201
|
+
slug: "folder-1",
|
|
202
|
+
parentId: null,
|
|
203
|
+
type: type
|
|
204
|
+
}, {
|
|
205
|
+
id: "folder-3",
|
|
206
|
+
title: "Folder 3",
|
|
207
|
+
slug: "folder-3",
|
|
208
|
+
parentId: null,
|
|
209
|
+
type: type
|
|
210
|
+
}])
|
|
211
|
+
};
|
|
212
|
+
var newType = "xyz";
|
|
213
|
+
var gatewayXyz = {
|
|
214
|
+
execute: jest.fn().mockResolvedValue([{
|
|
215
|
+
id: "folder-1",
|
|
216
|
+
title: "Folder 1",
|
|
217
|
+
slug: "folder-1",
|
|
218
|
+
parentId: null,
|
|
219
|
+
type: newType
|
|
220
|
+
}, {
|
|
221
|
+
id: "folder-2",
|
|
222
|
+
title: "Folder 2",
|
|
223
|
+
slug: "folder-1",
|
|
224
|
+
parentId: null,
|
|
225
|
+
type: newType
|
|
226
|
+
}, {
|
|
227
|
+
id: "folder-3",
|
|
228
|
+
title: "Folder 3",
|
|
229
|
+
slug: "folder-3",
|
|
230
|
+
parentId: null,
|
|
231
|
+
type: newType
|
|
232
|
+
}])
|
|
233
|
+
};
|
|
234
|
+
var listFoldersByParentId = _ListFoldersByParentIds.ListFoldersByParentIds.getInstance(type, gatewayAbc);
|
|
235
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
236
|
+
await listFoldersByParentId.useCase.execute({});
|
|
237
|
+
expect(gatewayAbc.execute).toHaveBeenCalledTimes(1);
|
|
238
|
+
expect(foldersCache.hasItems()).toBeTrue();
|
|
239
|
+
var newFoldersCache = _FoldersCacheFactory.folderCacheFactory.getCache(newType);
|
|
240
|
+
var newListFoldersByParentId = _ListFoldersByParentIds.ListFoldersByParentIds.getInstance(newType, gatewayXyz);
|
|
241
|
+
expect(newFoldersCache.hasItems()).toBeFalse();
|
|
242
|
+
await newListFoldersByParentId.useCase.execute({});
|
|
243
|
+
expect(gatewayXyz.execute).toHaveBeenCalledTimes(1);
|
|
244
|
+
expect(newFoldersCache.hasItems()).toBeTrue();
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
//# sourceMappingURL=ListFoldersByParentIds.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_ListFoldersByParentIds","require","_FoldersCacheFactory","_LoadedFoldersCacheFactory","_constants","describe","type","foldersCache","folderCacheFactory","getCache","loadedFoldersCache","loadedFolderCacheFactory","beforeEach","clear","jest","resetAllMocks","it","gateway","execute","fn","mockResolvedValue","id","title","slug","parentId","listByParentIdFolders","ListFoldersByParentIds","getInstance","expect","hasItems","toBeFalse","useCase","parentIds","undefined","toHaveBeenCalledTimes","toHaveBeenCalledWith","ROOT_FOLDER","toBeTrue","count","toEqual","mockImplementationOnce","Promise","resolve","toHaveBeenNthCalledWith","not","emptyGateway","items","getItems","length","errorGateway","mockRejectedValue","Error","rejects","toThrow","gatewayAbc","newType","gatewayXyz","listFoldersByParentId","newFoldersCache","newListFoldersByParentId"],"sources":["ListFoldersByParentIds.test.ts"],"sourcesContent":["import { ListFoldersByParentIds } from \"./ListFoldersByParentIds\";\nimport { folderCacheFactory } from \"../cache/FoldersCacheFactory\";\nimport { loadedFolderCacheFactory } from \"../cache/LoadedFoldersCacheFactory\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ndescribe(\"ListFoldersByParentIds\", () => {\n const type = \"abc\";\n\n const foldersCache = folderCacheFactory.getCache(type);\n const loadedFoldersCache = loadedFolderCacheFactory.getCache(type);\n\n beforeEach(() => {\n foldersCache.clear();\n loadedFoldersCache.clear();\n jest.resetAllMocks();\n });\n\n it(\"should list folders from `ROOT` level if parentIds is `undefined`\", async () => {\n const gateway = {\n execute: jest.fn().mockResolvedValue([\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: null,\n type\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-2\",\n parentId: null,\n type\n },\n {\n id: \"folder-3\",\n title: \"Folder 3\",\n slug: \"folder-3\",\n parentId: null,\n type\n }\n ])\n };\n\n const listByParentIdFolders = ListFoldersByParentIds.getInstance(type, gateway);\n\n expect(foldersCache.hasItems()).toBeFalse();\n await listByParentIdFolders.useCase.execute({ parentIds: undefined });\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n expect(gateway.execute).toHaveBeenCalledWith({ parentIds: [ROOT_FOLDER], type });\n\n expect(foldersCache.hasItems()).toBeTrue();\n expect(foldersCache.count()).toEqual(3);\n\n // This call should be idempotent: the number of elements in cache should not change\n await listByParentIdFolders.useCase.execute({ parentIds: undefined });\n expect(foldersCache.count()).toEqual(3);\n });\n\n it(\"should list folders from the provided `parentIds`\", async () => {\n const gateway = {\n execute: jest\n .fn()\n .mockImplementationOnce(() =>\n Promise.resolve([\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: \"folder-0\",\n type\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-1\",\n parentId: \"folder-0\",\n type\n },\n {\n id: \"folder-3\",\n title: \"Folder 3\",\n slug: \"folder-3\",\n parentId: \"folder-0\",\n type\n }\n ])\n )\n .mockImplementationOnce(() =>\n Promise.resolve([\n {\n id: \"folder-4\",\n title: \"Folder 4\",\n slug: \"folder-4\",\n parentId: \"folder-1\",\n type\n },\n {\n id: \"folder-5\",\n title: \"Folder 5\",\n slug: \"folder-5\",\n parentId: \"folder-1\",\n type\n },\n {\n id: \"folder-6\",\n title: \"Folder 6\",\n slug: \"folder-6\",\n parentId: \"folder-1\",\n type\n }\n ])\n )\n };\n\n const listByParentIdFolders = ListFoldersByParentIds.getInstance(type, gateway);\n\n expect(foldersCache.hasItems()).toBeFalse();\n await listByParentIdFolders.useCase.execute({ parentIds: [\"folder-0\"] });\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n expect(gateway.execute).toHaveBeenCalledWith({ parentIds: [\"folder-0\"], type });\n\n expect(foldersCache.hasItems()).toBeTrue();\n expect(foldersCache.count()).toEqual(3);\n\n // The number of folders in cache should increase, since we are changing the parentIds\n await listByParentIdFolders.useCase.execute({ parentIds: [\"folder-1\"] });\n expect(foldersCache.count()).toEqual(6);\n });\n\n it(\"should list folders from missing `parentIds` stored in cache\", async () => {\n const gateway = {\n execute: jest\n .fn()\n .mockImplementationOnce(() =>\n Promise.resolve([\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: \"folder-0\",\n type\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-2\",\n parentId: \"folder-1\",\n type\n }\n ])\n )\n .mockImplementationOnce(() =>\n Promise.resolve([\n {\n id: \"folder-3\",\n title: \"Folder 3\",\n slug: \"folder-3\",\n parentId: \"folder-2\",\n type\n }\n ])\n )\n };\n\n const listByParentIdFolders = ListFoldersByParentIds.getInstance(type, gateway);\n\n // Execute the useCase 3 times and check the gateway is invoked only when needed\n await listByParentIdFolders.useCase.execute({ parentIds: [\"folder-0\", \"folder-1\"] });\n await listByParentIdFolders.useCase.execute({\n parentIds: [\"folder-0\", \"folder-1\", \"folder-2\"]\n });\n await listByParentIdFolders.useCase.execute({\n parentIds: [\"folder-0\", \"folder-1\", \"folder-2\"]\n });\n\n expect(gateway.execute).toHaveBeenNthCalledWith(1, {\n parentIds: [\"folder-0\", \"folder-1\"],\n type\n });\n expect(gateway.execute).toHaveBeenNthCalledWith(2, { parentIds: [\"folder-2\"], type });\n expect(gateway.execute).not.toHaveBeenCalledTimes(3);\n });\n\n it(\"should return empty array if no folders are found\", async () => {\n const emptyGateway = {\n execute: jest.fn().mockResolvedValue([])\n };\n const listByParentIdFolders = ListFoldersByParentIds.getInstance(type, emptyGateway);\n\n expect(foldersCache.hasItems()).toBeFalse();\n\n await listByParentIdFolders.useCase.execute({});\n\n expect(emptyGateway.execute).toHaveBeenCalledTimes(1);\n expect(foldersCache.hasItems()).toBeFalse();\n\n const items = foldersCache.getItems();\n expect(items.length).toEqual(0);\n });\n\n it(\"should handle gateway errors gracefully\", async () => {\n const errorGateway = {\n execute: jest.fn().mockRejectedValue(new Error(\"Gateway error\"))\n };\n const listByParentIdFolders = ListFoldersByParentIds.getInstance(type, errorGateway);\n\n expect(foldersCache.hasItems()).toBeFalse();\n\n await expect(listByParentIdFolders.useCase.execute({})).rejects.toThrow(\"Gateway error\");\n\n expect(errorGateway.execute).toHaveBeenCalledTimes(1);\n expect(foldersCache.hasItems()).toBeFalse();\n });\n\n it(\"should clear cache when type changes\", async () => {\n const gatewayAbc = {\n execute: jest.fn().mockResolvedValue([\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: null,\n type\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-1\",\n parentId: null,\n type\n },\n {\n id: \"folder-3\",\n title: \"Folder 3\",\n slug: \"folder-3\",\n parentId: null,\n type\n }\n ])\n };\n\n const newType = \"xyz\";\n const gatewayXyz = {\n execute: jest.fn().mockResolvedValue([\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: null,\n type: newType\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-1\",\n parentId: null,\n type: newType\n },\n {\n id: \"folder-3\",\n title: \"Folder 3\",\n slug: \"folder-3\",\n parentId: null,\n type: newType\n }\n ])\n };\n\n const listFoldersByParentId = ListFoldersByParentIds.getInstance(type, gatewayAbc);\n\n expect(foldersCache.hasItems()).toBeFalse();\n\n await listFoldersByParentId.useCase.execute({});\n\n expect(gatewayAbc.execute).toHaveBeenCalledTimes(1);\n expect(foldersCache.hasItems()).toBeTrue();\n\n const newFoldersCache = folderCacheFactory.getCache(newType);\n const newListFoldersByParentId = ListFoldersByParentIds.getInstance(newType, gatewayXyz);\n\n expect(newFoldersCache.hasItems()).toBeFalse();\n\n await newListFoldersByParentId.useCase.execute({});\n\n expect(gatewayXyz.execute).toHaveBeenCalledTimes(1);\n expect(newFoldersCache.hasItems()).toBeTrue();\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import ApolloClient from "apollo-client";
|
|
2
|
+
import { IListFoldersByParentIdsGateway, ListFoldersByParentIdsGatewayParams } from "./IListFoldersByParentIdsGateway";
|
|
3
|
+
import { AcoError, FolderItem } from "../../../types";
|
|
4
|
+
export interface ListFoldersByParentIdsResponse {
|
|
5
|
+
aco: {
|
|
6
|
+
listFolders: {
|
|
7
|
+
data: FolderItem[] | null;
|
|
8
|
+
error: AcoError | null;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface ListFoldersByParentIdsQueryVariables {
|
|
13
|
+
type: string;
|
|
14
|
+
parentIds_in: string[];
|
|
15
|
+
limit: number;
|
|
16
|
+
sort?: Record<string, any>;
|
|
17
|
+
after?: string | null;
|
|
18
|
+
}
|
|
19
|
+
export declare const LIST_FOLDERS_BY_PARENT_IDS: (FOLDER_FIELDS: string) => import("graphql").DocumentNode;
|
|
20
|
+
export declare class ListFoldersByParentIdsGqlGateway implements IListFoldersByParentIdsGateway {
|
|
21
|
+
private client;
|
|
22
|
+
private modelFields;
|
|
23
|
+
constructor(client: ApolloClient<any>, modelFields: string);
|
|
24
|
+
execute({ parentIds, ...params }: ListFoldersByParentIdsGatewayParams): Promise<FolderItem[]>;
|
|
25
|
+
private getRootFolder;
|
|
26
|
+
}
|