@webiny/api-aco 5.35.0 → 5.35.1-beta.0
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/createAcoModels.js +1 -9
- package/createAcoModels.js.map +1 -1
- package/folder/folder.gql.js +18 -4
- package/folder/folder.gql.js.map +1 -1
- package/package.json +30 -30
- package/record/record.gql.js +19 -5
- package/record/record.gql.js.map +1 -1
- package/utils/checkPermissions.d.ts +2 -0
- package/utils/checkPermissions.js +14 -0
- package/utils/checkPermissions.js.map +1 -0
- package/utils/resolve.d.ts +1 -1
- package/context/folders.d.ts +0 -2
- package/context/folders.js +0 -261
- package/context/folders.js.map +0 -1
- package/context/index.d.ts +0 -2
- package/context/index.js +0 -22
- package/context/index.js.map +0 -1
- package/context/links.d.ts +0 -2
- package/context/links.js +0 -270
- package/context/links.js.map +0 -1
- package/graphql/base.gql.d.ts +0 -3
- package/graphql/base.gql.js +0 -63
- package/graphql/base.gql.js.map +0 -1
- package/graphql/folders.gql.d.ts +0 -3
- package/graphql/folders.gql.js +0 -126
- package/graphql/folders.gql.js.map +0 -1
- package/graphql/index.d.ts +0 -1
- package/graphql/index.js +0 -15
- package/graphql/index.js.map +0 -1
- package/graphql/links.gql.d.ts +0 -3
- package/graphql/links.gql.js +0 -123
- package/graphql/links.gql.js.map +0 -1
- package/subscriptions/afterFolderDelete.d.ts +0 -3
- package/subscriptions/afterFolderDelete.js +0 -62
- package/subscriptions/afterFolderDelete.js.map +0 -1
- package/subscriptions/index.d.ts +0 -3
- package/subscriptions/index.js +0 -14
- package/subscriptions/index.js.map +0 -1
package/createAcoModels.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.createAcoModels = void 0;
|
|
8
7
|
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
9
|
-
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
8
|
var _folder = require("./folder/folder.model");
|
|
11
9
|
var _record = require("./record/record.model");
|
|
12
|
-
var _modelFactory = require("./utils/modelFactory");
|
|
13
10
|
var _isInstallationPending = require("./utils/isInstallationPending");
|
|
11
|
+
var _modelFactory = require("./utils/modelFactory");
|
|
14
12
|
const createAcoModels = context => {
|
|
15
13
|
/**
|
|
16
14
|
* This should never happen in the actual project.
|
|
@@ -26,10 +24,6 @@ const createAcoModels = context => {
|
|
|
26
24
|
})) {
|
|
27
25
|
return;
|
|
28
26
|
}
|
|
29
|
-
const locale = context.i18n.getContentLocale();
|
|
30
|
-
if (!locale) {
|
|
31
|
-
throw new _error.default("Missing content locale in api-aco/storageOperations/index.ts", "LOCALE_ERROR");
|
|
32
|
-
}
|
|
33
27
|
const groupId = "contentModelGroup_aco";
|
|
34
28
|
|
|
35
29
|
/**
|
|
@@ -51,8 +45,6 @@ const createAcoModels = context => {
|
|
|
51
45
|
const cmsModelPlugins = modelDefinitions.map(modelDefinition => {
|
|
52
46
|
return (0, _modelFactory.modelFactory)({
|
|
53
47
|
group: cmsGroupPlugin.contentModelGroup,
|
|
54
|
-
tenant: context.tenancy.getCurrentTenant().id,
|
|
55
|
-
locale: locale.code,
|
|
56
48
|
modelDefinition
|
|
57
49
|
});
|
|
58
50
|
});
|
package/createAcoModels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAcoModels","context","cms","console","warn","isInstallationPending","tenancy","i18n","
|
|
1
|
+
{"version":3,"names":["createAcoModels","context","cms","console","warn","isInstallationPending","tenancy","i18n","groupId","cmsGroupPlugin","CmsGroupPlugin","id","slug","name","description","icon","isPrivate","modelDefinitions","createFolderModelDefinition","createSearchModelDefinition","cmsModelPlugins","map","modelDefinition","modelFactory","group","contentModelGroup","plugins","register"],"sources":["createAcoModels.ts"],"sourcesContent":["import { CmsGroupPlugin } from \"@webiny/api-headless-cms\";\nimport { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { createFolderModelDefinition } from \"~/folder/folder.model\";\nimport { createSearchModelDefinition } from \"~/record/record.model\";\nimport { isInstallationPending } from \"~/utils/isInstallationPending\";\nimport { modelFactory } from \"~/utils/modelFactory\";\n\nexport const createAcoModels = (context: CmsContext) => {\n /**\n * This should never happen in the actual project.\n * It is to make sure that we load setup context before the CRUD init in our internal code.\n */\n if (!context.cms) {\n console.warn(\"Creating model before cms init.\");\n return;\n }\n\n if (isInstallationPending({ tenancy: context.tenancy, i18n: context.i18n })) {\n return;\n }\n\n const groupId = \"contentModelGroup_aco\";\n\n /**\n * Create a CmsGroup.\n */\n const cmsGroupPlugin = new CmsGroupPlugin({\n id: groupId,\n slug: \"aco\",\n name: \"ACO\",\n description: \"Group for Advanced Content Organisation and Search\",\n icon: \"fas/folder\",\n isPrivate: true\n });\n\n /**\n * Create CmsModel plugins.\n */\n const modelDefinitions = [createFolderModelDefinition(), createSearchModelDefinition()];\n const cmsModelPlugins = modelDefinitions.map(modelDefinition => {\n return modelFactory({\n group: cmsGroupPlugin.contentModelGroup,\n modelDefinition\n });\n });\n\n /**\n * Register them so that they are accessible in cms context\n */\n context.plugins.register([cmsGroupPlugin, cmsModelPlugins]);\n};\n"],"mappings":";;;;;;AAAA;AAEA;AACA;AACA;AACA;AAEO,MAAMA,eAAe,GAAIC,OAAmB,IAAK;EACpD;AACJ;AACA;AACA;EACI,IAAI,CAACA,OAAO,CAACC,GAAG,EAAE;IACdC,OAAO,CAACC,IAAI,CAAC,iCAAiC,CAAC;IAC/C;EACJ;EAEA,IAAI,IAAAC,4CAAqB,EAAC;IAAEC,OAAO,EAAEL,OAAO,CAACK,OAAO;IAAEC,IAAI,EAAEN,OAAO,CAACM;EAAK,CAAC,CAAC,EAAE;IACzE;EACJ;EAEA,MAAMC,OAAO,GAAG,uBAAuB;;EAEvC;AACJ;AACA;EACI,MAAMC,cAAc,GAAG,IAAIC,8BAAc,CAAC;IACtCC,EAAE,EAAEH,OAAO;IACXI,IAAI,EAAE,KAAK;IACXC,IAAI,EAAE,KAAK;IACXC,WAAW,EAAE,oDAAoD;IACjEC,IAAI,EAAE,YAAY;IAClBC,SAAS,EAAE;EACf,CAAC,CAAC;;EAEF;AACJ;AACA;EACI,MAAMC,gBAAgB,GAAG,CAAC,IAAAC,mCAA2B,GAAE,EAAE,IAAAC,mCAA2B,GAAE,CAAC;EACvF,MAAMC,eAAe,GAAGH,gBAAgB,CAACI,GAAG,CAACC,eAAe,IAAI;IAC5D,OAAO,IAAAC,0BAAY,EAAC;MAChBC,KAAK,EAAEf,cAAc,CAACgB,iBAAiB;MACvCH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;;EAEF;AACJ;AACA;EACIrB,OAAO,CAACyB,OAAO,CAACC,QAAQ,CAAC,CAAClB,cAAc,EAAEW,eAAe,CAAC,CAAC;AAC/D,CAAC;AAAC"}
|
package/folder/folder.gql.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.folderSchema = void 0;
|
|
7
7
|
var _responses = require("@webiny/handler-graphql/responses");
|
|
8
8
|
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
9
|
+
var _checkPermissions = require("../utils/checkPermissions");
|
|
9
10
|
var _resolve = require("../utils/resolve");
|
|
10
11
|
const folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
11
12
|
typeDefs: /* GraphQL */`
|
|
@@ -69,10 +70,14 @@ const folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
|
69
70
|
getFolder: async (_, {
|
|
70
71
|
id
|
|
71
72
|
}, context) => {
|
|
72
|
-
return (0, _resolve.resolve)(() =>
|
|
73
|
+
return (0, _resolve.resolve)(() => {
|
|
74
|
+
(0, _checkPermissions.checkPermissions)(context);
|
|
75
|
+
return context.aco.folder.get(id);
|
|
76
|
+
});
|
|
73
77
|
},
|
|
74
78
|
listFolders: async (_, args, context) => {
|
|
75
79
|
try {
|
|
80
|
+
await (0, _checkPermissions.checkPermissions)(context);
|
|
76
81
|
const [entries, meta] = await context.aco.folder.list(args);
|
|
77
82
|
return new _responses.ListResponse(entries, meta);
|
|
78
83
|
} catch (e) {
|
|
@@ -84,18 +89,27 @@ const folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
|
84
89
|
createFolder: async (_, {
|
|
85
90
|
data
|
|
86
91
|
}, context) => {
|
|
87
|
-
return (0, _resolve.resolve)(() =>
|
|
92
|
+
return (0, _resolve.resolve)(() => {
|
|
93
|
+
(0, _checkPermissions.checkPermissions)(context);
|
|
94
|
+
return context.aco.folder.create(data);
|
|
95
|
+
});
|
|
88
96
|
},
|
|
89
97
|
updateFolder: async (_, {
|
|
90
98
|
id,
|
|
91
99
|
data
|
|
92
100
|
}, context) => {
|
|
93
|
-
return (0, _resolve.resolve)(() =>
|
|
101
|
+
return (0, _resolve.resolve)(() => {
|
|
102
|
+
(0, _checkPermissions.checkPermissions)(context);
|
|
103
|
+
return context.aco.folder.update(id, data);
|
|
104
|
+
});
|
|
94
105
|
},
|
|
95
106
|
deleteFolder: async (_, {
|
|
96
107
|
id
|
|
97
108
|
}, context) => {
|
|
98
|
-
return (0, _resolve.resolve)(() =>
|
|
109
|
+
return (0, _resolve.resolve)(() => {
|
|
110
|
+
(0, _checkPermissions.checkPermissions)(context);
|
|
111
|
+
return context.aco.folder.delete(id);
|
|
112
|
+
});
|
|
99
113
|
}
|
|
100
114
|
}
|
|
101
115
|
}
|
package/folder/folder.gql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["folderSchema","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getFolder","_","id","context","resolve","aco","folder","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const folderSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type Folder {\n id: ID!\n title: String!\n slug: String!\n type: String!\n parentId: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: AcoUser\n }\n\n input FolderCreateInput {\n title: String!\n slug: String!\n type: String!\n parentId: ID\n }\n\n input FolderUpdateInput {\n title: String\n slug: String\n parentId: ID\n }\n\n input FoldersListWhereInput {\n type: String!\n parentId: String\n }\n\n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFolder: async (_, { id }, context) => {\n return resolve(() => context.aco.folder.get(id));\n },\n listFolders: async (_, args: any, context) => {\n try {\n const [entries, meta] = await context.aco.folder.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFolder: async (_, { data }, context) => {\n return resolve(() => context.aco.folder.create(data));\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => context.aco.folder.update(id, data));\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => context.aco.folder.delete(id));\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA;AACA;AAEA;AAIO,MAAMA,YAAY,GAAG,IAAIC,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,SAAS,EAAE,OAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,
|
|
1
|
+
{"version":3,"names":["folderSchema","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getFolder","_","id","context","resolve","checkPermissions","aco","folder","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { checkPermissions } from \"~/utils/checkPermissions\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const folderSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type Folder {\n id: ID!\n title: String!\n slug: String!\n type: String!\n parentId: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: AcoUser\n }\n\n input FolderCreateInput {\n title: String!\n slug: String!\n type: String!\n parentId: ID\n }\n\n input FolderUpdateInput {\n title: String\n slug: String\n parentId: ID\n }\n\n input FoldersListWhereInput {\n type: String!\n parentId: String\n }\n\n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFolder: async (_, { id }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.get(id);\n });\n },\n listFolders: async (_, args: any, context) => {\n try {\n await checkPermissions(context);\n const [entries, meta] = await context.aco.folder.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFolder: async (_, { data }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.create(data);\n });\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.update(id, data);\n });\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.folder.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA;AACA;AAEA;AACA;AAIO,MAAMA,YAAY,GAAG,IAAIC,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,SAAS,EAAE,OAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACC,GAAG,CAACN,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDO,WAAW,EAAE,OAAOR,CAAC,EAAES,IAAS,EAAEP,OAAO,KAAK;QAC1C,IAAI;UACA,MAAM,IAAAE,kCAAgB,EAACF,OAAO,CAAC;UAC/B,MAAM,CAACQ,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMT,OAAO,CAACG,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,WAAW,EAAE;MACTC,YAAY,EAAE,OAAOjB,CAAC,EAAE;QAAEkB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC1C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACa,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,OAAOpB,CAAC,EAAE;QAAEC,EAAE;QAAEiB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC9C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACe,MAAM,CAACpB,EAAE,EAAEiB,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,OAAOtB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UACzB,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACiB,MAAM,CAACtB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC;AAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-aco",
|
|
3
|
-
"version": "5.35.0",
|
|
3
|
+
"version": "5.35.1-beta.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aco:base"
|
|
@@ -22,37 +22,37 @@
|
|
|
22
22
|
"directory": "dist"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@babel/cli": "
|
|
26
|
-
"@babel/core": "
|
|
27
|
-
"@babel/preset-env": "
|
|
28
|
-
"@babel/preset-typescript": "
|
|
29
|
-
"@babel/runtime": "
|
|
30
|
-
"@webiny/api-headless-cms-ddb": "^5.35.0",
|
|
31
|
-
"@webiny/api-i18n-ddb": "^5.35.0",
|
|
32
|
-
"@webiny/api-security-so-ddb": "^5.35.0",
|
|
33
|
-
"@webiny/api-tenancy-so-ddb": "^5.35.0",
|
|
34
|
-
"@webiny/api-wcp": "^5.35.0",
|
|
35
|
-
"@webiny/cli": "^5.35.0",
|
|
36
|
-
"@webiny/handler-aws": "^5.35.0",
|
|
37
|
-
"@webiny/plugins": "^5.35.0",
|
|
38
|
-
"@webiny/project-utils": "^5.35.0",
|
|
39
|
-
"rimraf": "
|
|
40
|
-
"ttypescript": "
|
|
41
|
-
"typescript": "
|
|
25
|
+
"@babel/cli": "7.20.7",
|
|
26
|
+
"@babel/core": "7.20.12",
|
|
27
|
+
"@babel/preset-env": "7.20.2",
|
|
28
|
+
"@babel/preset-typescript": "7.18.6",
|
|
29
|
+
"@babel/runtime": "7.20.13",
|
|
30
|
+
"@webiny/api-headless-cms-ddb": "^5.35.1-beta.0",
|
|
31
|
+
"@webiny/api-i18n-ddb": "^5.35.1-beta.0",
|
|
32
|
+
"@webiny/api-security-so-ddb": "^5.35.1-beta.0",
|
|
33
|
+
"@webiny/api-tenancy-so-ddb": "^5.35.1-beta.0",
|
|
34
|
+
"@webiny/api-wcp": "^5.35.1-beta.0",
|
|
35
|
+
"@webiny/cli": "^5.35.1-beta.0",
|
|
36
|
+
"@webiny/handler-aws": "^5.35.1-beta.0",
|
|
37
|
+
"@webiny/plugins": "^5.35.1-beta.0",
|
|
38
|
+
"@webiny/project-utils": "^5.35.1-beta.0",
|
|
39
|
+
"rimraf": "3.0.2",
|
|
40
|
+
"ttypescript": "1.5.15",
|
|
41
|
+
"typescript": "4.7.4"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@webiny/api": "5.35.0",
|
|
45
|
-
"@webiny/api-admin-settings": "5.35.0",
|
|
46
|
-
"@webiny/api-headless-cms": "5.35.0",
|
|
47
|
-
"@webiny/api-i18n": "5.35.0",
|
|
48
|
-
"@webiny/api-security": "5.35.0",
|
|
49
|
-
"@webiny/api-tenancy": "5.35.0",
|
|
50
|
-
"@webiny/error": "5.35.0",
|
|
51
|
-
"@webiny/handler": "5.35.0",
|
|
52
|
-
"@webiny/handler-graphql": "5.35.0",
|
|
53
|
-
"@webiny/pubsub": "5.35.0",
|
|
54
|
-
"@webiny/utils": "5.35.0",
|
|
44
|
+
"@webiny/api": "^5.35.1-beta.0",
|
|
45
|
+
"@webiny/api-admin-settings": "^5.35.1-beta.0",
|
|
46
|
+
"@webiny/api-headless-cms": "^5.35.1-beta.0",
|
|
47
|
+
"@webiny/api-i18n": "^5.35.1-beta.0",
|
|
48
|
+
"@webiny/api-security": "^5.35.1-beta.0",
|
|
49
|
+
"@webiny/api-tenancy": "^5.35.1-beta.0",
|
|
50
|
+
"@webiny/error": "^5.35.1-beta.0",
|
|
51
|
+
"@webiny/handler": "^5.35.1-beta.0",
|
|
52
|
+
"@webiny/handler-graphql": "^5.35.1-beta.0",
|
|
53
|
+
"@webiny/pubsub": "^5.35.1-beta.0",
|
|
54
|
+
"@webiny/utils": "^5.35.1-beta.0",
|
|
55
55
|
"lodash": "4.17.21"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "d6a257ebbb9e7aeccfaa33a7f83301cf1919b082"
|
|
58
58
|
}
|
package/record/record.gql.js
CHANGED
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.searchRecordSchema = void 0;
|
|
7
7
|
var _responses = require("@webiny/handler-graphql/responses");
|
|
8
8
|
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
9
|
-
var _resolve = require("../utils/resolve");
|
|
10
9
|
var _utils = require("@webiny/utils");
|
|
11
10
|
var _acoRecordId = require("../utils/acoRecordId");
|
|
11
|
+
var _checkPermissions = require("../utils/checkPermissions");
|
|
12
|
+
var _resolve = require("../utils/resolve");
|
|
12
13
|
const searchRecordSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
13
14
|
typeDefs: /* GraphQL */`
|
|
14
15
|
type SearchRecord {
|
|
@@ -99,10 +100,14 @@ const searchRecordSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
|
99
100
|
getRecord: async (_, {
|
|
100
101
|
id
|
|
101
102
|
}, context) => {
|
|
102
|
-
return (0, _resolve.resolve)(() =>
|
|
103
|
+
return (0, _resolve.resolve)(() => {
|
|
104
|
+
(0, _checkPermissions.checkPermissions)(context);
|
|
105
|
+
return context.aco.search.get(id);
|
|
106
|
+
});
|
|
103
107
|
},
|
|
104
108
|
listRecords: async (_, args, context) => {
|
|
105
109
|
try {
|
|
110
|
+
await (0, _checkPermissions.checkPermissions)(context);
|
|
106
111
|
const [entries, meta] = await context.aco.search.list(args);
|
|
107
112
|
return new _responses.ListResponse(entries, meta);
|
|
108
113
|
} catch (e) {
|
|
@@ -114,18 +119,27 @@ const searchRecordSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
|
114
119
|
createRecord: async (_, {
|
|
115
120
|
data
|
|
116
121
|
}, context) => {
|
|
117
|
-
return (0, _resolve.resolve)(() =>
|
|
122
|
+
return (0, _resolve.resolve)(() => {
|
|
123
|
+
(0, _checkPermissions.checkPermissions)(context);
|
|
124
|
+
return context.aco.search.create(data);
|
|
125
|
+
});
|
|
118
126
|
},
|
|
119
127
|
updateRecord: async (_, {
|
|
120
128
|
id,
|
|
121
129
|
data
|
|
122
130
|
}, context) => {
|
|
123
|
-
return (0, _resolve.resolve)(() =>
|
|
131
|
+
return (0, _resolve.resolve)(() => {
|
|
132
|
+
(0, _checkPermissions.checkPermissions)(context);
|
|
133
|
+
return context.aco.search.update(id, data);
|
|
134
|
+
});
|
|
124
135
|
},
|
|
125
136
|
deleteRecord: async (_, {
|
|
126
137
|
id
|
|
127
138
|
}, context) => {
|
|
128
|
-
return (0, _resolve.resolve)(() =>
|
|
139
|
+
return (0, _resolve.resolve)(() => {
|
|
140
|
+
(0, _checkPermissions.checkPermissions)(context);
|
|
141
|
+
return context.aco.search.delete(id);
|
|
142
|
+
});
|
|
129
143
|
}
|
|
130
144
|
}
|
|
131
145
|
}
|
package/record/record.gql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["searchRecordSchema","GraphQLSchemaPlugin","typeDefs","resolvers","SearchRecord","id","parent","parseIdentifier","removeAcoRecordPrefix","SearchQuery","getRecord","_","context","resolve","aco","search","get","listRecords","args","entries","meta","list","ListResponse","e","ErrorResponse","SearchMutation","createRecord","data","create","updateRecord","update","deleteRecord","delete"],"sources":["record.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\
|
|
1
|
+
{"version":3,"names":["searchRecordSchema","GraphQLSchemaPlugin","typeDefs","resolvers","SearchRecord","id","parent","parseIdentifier","removeAcoRecordPrefix","SearchQuery","getRecord","_","context","resolve","checkPermissions","aco","search","get","listRecords","args","entries","meta","list","ListResponse","e","ErrorResponse","SearchMutation","createRecord","data","create","updateRecord","update","deleteRecord","delete"],"sources":["record.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nimport { removeAcoRecordPrefix } from \"~/utils/acoRecordId\";\nimport { checkPermissions } from \"~/utils/checkPermissions\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const searchRecordSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type SearchRecord {\n id: ID!\n type: String!\n location: SearchLocationType!\n title: String!\n content: String\n data: JSON!\n tags: [String!]!\n savedOn: DateTime\n createdOn: DateTime\n createdBy: AcoUser\n }\n\n type SearchLocationType {\n folderId: ID!\n }\n\n input SearchLocationInput {\n folderId: ID!\n }\n\n input SearchRecordCreateInput {\n id: String!\n type: String!\n title: String!\n content: String\n location: SearchLocationInput!\n data: JSON\n tags: [String!]\n }\n\n input SearchRecordUpdateInput {\n title: String\n content: String\n location: SearchLocationInput\n data: JSON\n tags: [String!]\n }\n\n input SearchRecordListWhereInput {\n type: String!\n location: SearchLocationInput\n tags_in: [String!]\n tags_startsWith: String\n tags_not_startsWith: String\n }\n\n type SearchRecordResponse {\n data: SearchRecord\n error: AcoError\n }\n\n type SearchRecordListResponse {\n data: [SearchRecord]\n error: AcoError\n meta: AcoMeta\n }\n\n extend type SearchQuery {\n getRecord(id: ID!): SearchRecordResponse\n listRecords(\n where: SearchRecordListWhereInput\n search: String\n limit: Int\n after: String\n sort: AcoSort\n ): SearchRecordListResponse\n }\n\n extend type SearchMutation {\n createRecord(data: SearchRecordCreateInput!): SearchRecordResponse\n updateRecord(id: ID!, data: SearchRecordUpdateInput!): SearchRecordResponse\n deleteRecord(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n SearchRecord: {\n id: async parent => {\n const { id } = parseIdentifier(parent.id);\n return removeAcoRecordPrefix(id);\n }\n },\n SearchQuery: {\n getRecord: async (_, { id }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.search.get(id);\n });\n },\n listRecords: async (_, args: any, context) => {\n try {\n await checkPermissions(context);\n const [entries, meta] = await context.aco.search.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n SearchMutation: {\n createRecord: async (_, { data }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.search.create(data);\n });\n },\n updateRecord: async (_, { id, data }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.search.update(id, data);\n });\n },\n deleteRecord: async (_, { id }, context) => {\n return resolve(() => {\n checkPermissions(context);\n return context.aco.search.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkPermissions = void 0;
|
|
7
|
+
var _apiSecurity = require("@webiny/api-security");
|
|
8
|
+
const checkPermissions = context => {
|
|
9
|
+
const identity = context.security.getIdentity();
|
|
10
|
+
if (!identity) {
|
|
11
|
+
throw new _apiSecurity.NotAuthorizedError();
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
exports.checkPermissions = checkPermissions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["checkPermissions","context","identity","security","getIdentity","NotAuthorizedError"],"sources":["checkPermissions.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { AcoContext } from \"~/types\";\n\nexport const checkPermissions = (context: AcoContext) => {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n};\n"],"mappings":";;;;;;AAAA;AAGO,MAAMA,gBAAgB,GAAIC,OAAmB,IAAK;EACrD,MAAMC,QAAQ,GAAGD,OAAO,CAACE,QAAQ,CAACC,WAAW,EAAE;EAC/C,IAAI,CAACF,QAAQ,EAAE;IACX,MAAM,IAAIG,+BAAkB,EAAE;EAClC;AACJ,CAAC;AAAC"}
|
package/utils/resolve.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Response, ErrorResponse } from "@webiny/handler-graphql";
|
|
2
|
-
export declare const resolve: (fn: () => Promise<any>) => Promise<Response<any
|
|
2
|
+
export declare const resolve: (fn: () => Promise<any>) => Promise<ErrorResponse | Response<any>>;
|
package/context/folders.d.ts
DELETED
package/context/folders.js
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.createFoldersContext = void 0;
|
|
9
|
-
|
|
10
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
|
-
var _mdbid = _interopRequireDefault(require("mdbid"));
|
|
13
|
-
|
|
14
|
-
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
15
|
-
|
|
16
|
-
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
17
|
-
|
|
18
|
-
var _pubsub = require("@webiny/pubsub");
|
|
19
|
-
|
|
20
|
-
var _joi = _interopRequireDefault(require("joi"));
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Package mdbid does not have types.
|
|
24
|
-
*/
|
|
25
|
-
// @ts-ignore
|
|
26
|
-
const requiredString = _joi.default.string().required();
|
|
27
|
-
|
|
28
|
-
const createSchema = _joi.default.object({
|
|
29
|
-
name: requiredString.min(3),
|
|
30
|
-
slug: requiredString.min(3),
|
|
31
|
-
type: requiredString,
|
|
32
|
-
tenant: requiredString,
|
|
33
|
-
locale: requiredString
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
const updateSchema = _joi.default.object({
|
|
37
|
-
name: requiredString.min(3),
|
|
38
|
-
slug: requiredString.min(3)
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const createFoldersContext = async ({
|
|
42
|
-
getTenantId,
|
|
43
|
-
getLocaleCode,
|
|
44
|
-
getIdentity,
|
|
45
|
-
storageOperations
|
|
46
|
-
}) => {
|
|
47
|
-
// create
|
|
48
|
-
const onFolderBeforeCreate = (0, _pubsub.createTopic)("folders.onFolderBeforeCreate");
|
|
49
|
-
const onFolderAfterCreate = (0, _pubsub.createTopic)("folders.onFolderAfterCreate"); // update
|
|
50
|
-
|
|
51
|
-
const onFolderBeforeUpdate = (0, _pubsub.createTopic)("folders.onFolderBeforeUpdate");
|
|
52
|
-
const onFolderAfterUpdate = (0, _pubsub.createTopic)("folders.onFolderAfterUpdate"); // delete
|
|
53
|
-
|
|
54
|
-
const onFolderBeforeDelete = (0, _pubsub.createTopic)("folders.onFolderBeforeDelete");
|
|
55
|
-
const onFolderAfterDelete = (0, _pubsub.createTopic)("folders.onFolderAfterDelete");
|
|
56
|
-
return {
|
|
57
|
-
onFolderBeforeCreate,
|
|
58
|
-
onFolderAfterCreate,
|
|
59
|
-
onFolderBeforeUpdate,
|
|
60
|
-
onFolderAfterUpdate,
|
|
61
|
-
onFolderBeforeDelete,
|
|
62
|
-
onFolderAfterDelete,
|
|
63
|
-
|
|
64
|
-
async getFolder({
|
|
65
|
-
id
|
|
66
|
-
}) {
|
|
67
|
-
const tenant = getTenantId();
|
|
68
|
-
const locale = getLocaleCode();
|
|
69
|
-
let folder;
|
|
70
|
-
|
|
71
|
-
try {
|
|
72
|
-
folder = await storageOperations.getFolder({
|
|
73
|
-
tenant,
|
|
74
|
-
locale,
|
|
75
|
-
id
|
|
76
|
-
});
|
|
77
|
-
} catch (error) {
|
|
78
|
-
throw _error.default.from(error, {
|
|
79
|
-
message: "Could not get folder.",
|
|
80
|
-
code: "GET_FOLDER_ERROR",
|
|
81
|
-
data: {
|
|
82
|
-
id
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (!folder) {
|
|
88
|
-
throw new _handlerGraphql.NotFoundError(`Unable to find folder with id: ${id}`);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return folder;
|
|
92
|
-
},
|
|
93
|
-
|
|
94
|
-
async listFolders({
|
|
95
|
-
where
|
|
96
|
-
}) {
|
|
97
|
-
const tenant = getTenantId();
|
|
98
|
-
const locale = getLocaleCode();
|
|
99
|
-
|
|
100
|
-
try {
|
|
101
|
-
return await storageOperations.listFolders({
|
|
102
|
-
where: (0, _objectSpread2.default)({
|
|
103
|
-
tenant,
|
|
104
|
-
locale
|
|
105
|
-
}, where),
|
|
106
|
-
sort: ["createdOn_ASC"]
|
|
107
|
-
});
|
|
108
|
-
} catch (error) {
|
|
109
|
-
throw _error.default.from(error, {
|
|
110
|
-
message: "Could not list folders.",
|
|
111
|
-
code: "LIST_FOLDERS_ERROR",
|
|
112
|
-
data: (0, _objectSpread2.default)({}, where)
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
|
|
117
|
-
async createFolder(input) {
|
|
118
|
-
await createSchema.validate(input);
|
|
119
|
-
const tenant = getTenantId();
|
|
120
|
-
const locale = getLocaleCode();
|
|
121
|
-
const {
|
|
122
|
-
type,
|
|
123
|
-
slug,
|
|
124
|
-
parentId
|
|
125
|
-
} = input;
|
|
126
|
-
const existing = await storageOperations.getFolder({
|
|
127
|
-
tenant,
|
|
128
|
-
locale,
|
|
129
|
-
type,
|
|
130
|
-
slug,
|
|
131
|
-
parentId
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
if (existing) {
|
|
135
|
-
throw new _error.default(`Folder with slug "${slug}" already exists at this level.`, "FOLDER_EXISTS");
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const identity = getIdentity();
|
|
139
|
-
const folder = (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
140
|
-
id: (0, _mdbid.default)(),
|
|
141
|
-
tenant,
|
|
142
|
-
locale
|
|
143
|
-
}, input), {}, {
|
|
144
|
-
webinyVersion: process.env.WEBINY_VERSION,
|
|
145
|
-
createdOn: new Date().toISOString(),
|
|
146
|
-
createdBy: {
|
|
147
|
-
id: identity.id,
|
|
148
|
-
displayName: identity.displayName,
|
|
149
|
-
type: identity.type
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
try {
|
|
154
|
-
await onFolderBeforeCreate.publish({
|
|
155
|
-
folder
|
|
156
|
-
});
|
|
157
|
-
const result = await storageOperations.createFolder({
|
|
158
|
-
folder
|
|
159
|
-
});
|
|
160
|
-
await onFolderAfterCreate.publish({
|
|
161
|
-
folder: result
|
|
162
|
-
});
|
|
163
|
-
return result;
|
|
164
|
-
} catch (error) {
|
|
165
|
-
throw _error.default.from(error, {
|
|
166
|
-
message: "Could not create folder.",
|
|
167
|
-
code: "CREATE_FOLDER_ERROR",
|
|
168
|
-
data: (0, _objectSpread2.default)({}, input)
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
async updateFolder(id, input) {
|
|
174
|
-
await updateSchema.validate(input);
|
|
175
|
-
const tenant = getTenantId();
|
|
176
|
-
const locale = getLocaleCode();
|
|
177
|
-
const {
|
|
178
|
-
slug,
|
|
179
|
-
parentId
|
|
180
|
-
} = input;
|
|
181
|
-
const original = await storageOperations.getFolder({
|
|
182
|
-
tenant,
|
|
183
|
-
locale,
|
|
184
|
-
id
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
if (!original) {
|
|
188
|
-
throw new _handlerGraphql.NotFoundError(`Folder "${id}" was not found!`);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
const existing = await storageOperations.getFolder({
|
|
192
|
-
tenant,
|
|
193
|
-
locale,
|
|
194
|
-
type: original.type,
|
|
195
|
-
slug: slug || original.slug,
|
|
196
|
-
parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`
|
|
197
|
-
|
|
198
|
-
}); // Check if another folder exists already inside the target
|
|
199
|
-
|
|
200
|
-
if (existing && (existing === null || existing === void 0 ? void 0 : existing.id) !== id) {
|
|
201
|
-
throw new _error.default(`Folder with slug "${slug}" already exists at this level.`, "FOLDER_EXISTS");
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
const folder = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), input);
|
|
205
|
-
|
|
206
|
-
try {
|
|
207
|
-
await onFolderBeforeUpdate.publish({
|
|
208
|
-
folder,
|
|
209
|
-
original
|
|
210
|
-
});
|
|
211
|
-
const result = await storageOperations.updateFolder({
|
|
212
|
-
original,
|
|
213
|
-
folder
|
|
214
|
-
});
|
|
215
|
-
await onFolderAfterUpdate.publish({
|
|
216
|
-
folder: result,
|
|
217
|
-
original
|
|
218
|
-
});
|
|
219
|
-
return result;
|
|
220
|
-
} catch (error) {
|
|
221
|
-
throw new _error.default(error.message || "Could not update folder.", error.code || "UPDATE_FOLDER_ERROR", {
|
|
222
|
-
folder
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
},
|
|
226
|
-
|
|
227
|
-
async deleteFolder(id) {
|
|
228
|
-
const tenant = getTenantId();
|
|
229
|
-
const locale = getLocaleCode();
|
|
230
|
-
const folder = await storageOperations.getFolder({
|
|
231
|
-
tenant,
|
|
232
|
-
locale,
|
|
233
|
-
id
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
if (!folder) {
|
|
237
|
-
throw new _handlerGraphql.NotFoundError(`Folder "${id}" was not found!`);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
try {
|
|
241
|
-
await onFolderBeforeDelete.publish({
|
|
242
|
-
folder
|
|
243
|
-
});
|
|
244
|
-
const result = storageOperations.deleteFolder({
|
|
245
|
-
folder
|
|
246
|
-
});
|
|
247
|
-
await onFolderAfterDelete.publish({
|
|
248
|
-
folder
|
|
249
|
-
});
|
|
250
|
-
return result;
|
|
251
|
-
} catch (error) {
|
|
252
|
-
throw new _error.default(error.message || "Could not delete folder.", error.code || "DELETE_FOLDER_ERROR", {
|
|
253
|
-
folder
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
};
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
exports.createFoldersContext = createFoldersContext;
|
package/context/folders.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["requiredString","joi","string","required","createSchema","object","name","min","slug","type","tenant","locale","updateSchema","createFoldersContext","getTenantId","getLocaleCode","getIdentity","storageOperations","onFolderBeforeCreate","createTopic","onFolderAfterCreate","onFolderBeforeUpdate","onFolderAfterUpdate","onFolderBeforeDelete","onFolderAfterDelete","getFolder","id","folder","error","WebinyError","from","message","code","data","NotFoundError","listFolders","where","sort","createFolder","input","validate","parentId","existing","identity","mdbid","webinyVersion","process","env","WEBINY_VERSION","createdOn","Date","toISOString","createdBy","displayName","publish","result","updateFolder","original","undefined","deleteFolder"],"sources":["folders.ts"],"sourcesContent":["/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\nimport WebinyError from \"@webiny/error\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport joi from \"joi\";\n\nimport {\n Folder,\n FolderInput,\n FoldersConfig,\n GetFolderParams,\n IFolders,\n ListFoldersParams,\n OnFolderAfterCreateTopicParams,\n OnFolderAfterDeleteTopicParams,\n OnFolderAfterUpdateTopicParams,\n OnFolderBeforeCreateTopicParams,\n OnFolderBeforeDeleteTopicParams,\n OnFolderBeforeUpdateTopicParams\n} from \"~/types\";\n\nconst requiredString = joi.string().required();\n\nconst createSchema = joi.object({\n name: requiredString.min(3),\n slug: requiredString.min(3),\n type: requiredString,\n tenant: requiredString,\n locale: requiredString\n});\n\nconst updateSchema = joi.object({\n name: requiredString.min(3),\n slug: requiredString.min(3)\n});\n\nexport const createFoldersContext = async ({\n getTenantId,\n getLocaleCode,\n getIdentity,\n storageOperations\n}: FoldersConfig): Promise<IFolders> => {\n // create\n const onFolderBeforeCreate = createTopic<OnFolderBeforeCreateTopicParams>(\n \"folders.onFolderBeforeCreate\"\n );\n const onFolderAfterCreate = createTopic<OnFolderAfterCreateTopicParams>(\n \"folders.onFolderAfterCreate\"\n );\n // update\n const onFolderBeforeUpdate = createTopic<OnFolderBeforeUpdateTopicParams>(\n \"folders.onFolderBeforeUpdate\"\n );\n const onFolderAfterUpdate = createTopic<OnFolderAfterUpdateTopicParams>(\n \"folders.onFolderAfterUpdate\"\n );\n // delete\n const onFolderBeforeDelete = createTopic<OnFolderBeforeDeleteTopicParams>(\n \"folders.onFolderBeforeDelete\"\n );\n const onFolderAfterDelete = createTopic<OnFolderAfterDeleteTopicParams>(\n \"folders.onFolderAfterDelete\"\n );\n\n return {\n onFolderBeforeCreate,\n onFolderAfterCreate,\n onFolderBeforeUpdate,\n onFolderAfterUpdate,\n onFolderBeforeDelete,\n onFolderAfterDelete,\n async getFolder({ id }: GetFolderParams): Promise<Folder> {\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n let folder: Folder | undefined;\n\n try {\n folder = await storageOperations.getFolder({ tenant, locale, id });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Could not get folder.\",\n code: \"GET_FOLDER_ERROR\",\n data: { id }\n });\n }\n if (!folder) {\n throw new NotFoundError(`Unable to find folder with id: ${id}`);\n }\n return folder;\n },\n\n async listFolders({ where }: ListFoldersParams): Promise<Folder[]> {\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n try {\n return await storageOperations.listFolders({\n where: { tenant, locale, ...where },\n sort: [\"createdOn_ASC\"]\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Could not list folders.\",\n code: \"LIST_FOLDERS_ERROR\",\n data: { ...where }\n });\n }\n },\n\n async createFolder(input: FolderInput): Promise<Folder> {\n await createSchema.validate(input);\n\n const tenant = getTenantId();\n const locale = getLocaleCode();\n const { type, slug, parentId } = input;\n\n const existing = await storageOperations.getFolder({\n tenant,\n locale,\n type,\n slug,\n parentId\n });\n\n if (existing) {\n throw new WebinyError(\n `Folder with slug \"${slug}\" already exists at this level.`,\n \"FOLDER_EXISTS\"\n );\n }\n\n const identity = getIdentity();\n\n const folder: Folder = {\n id: mdbid(),\n tenant,\n locale,\n ...input,\n webinyVersion: process.env.WEBINY_VERSION as string,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n }\n };\n\n try {\n await onFolderBeforeCreate.publish({\n folder\n });\n const result = await storageOperations.createFolder({ folder });\n await onFolderAfterCreate.publish({\n folder: result\n });\n return result;\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Could not create folder.\",\n code: \"CREATE_FOLDER_ERROR\",\n data: { ...input }\n });\n }\n },\n\n async updateFolder(id: string, input: Record<string, any>): Promise<Folder> {\n await updateSchema.validate(input);\n\n const tenant = getTenantId();\n const locale = getLocaleCode();\n const { slug, parentId } = input;\n\n const original = await storageOperations.getFolder({ tenant, locale, id });\n\n if (!original) {\n throw new NotFoundError(`Folder \"${id}\" was not found!`);\n }\n\n const existing = await storageOperations.getFolder({\n tenant,\n locale,\n type: original.type,\n slug: slug || original.slug,\n parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`\n });\n\n // Check if another folder exists already inside the target\n if (existing && existing?.id !== id) {\n throw new WebinyError(\n `Folder with slug \"${slug}\" already exists at this level.`,\n \"FOLDER_EXISTS\"\n );\n }\n\n const folder: Folder = {\n ...original,\n ...input\n };\n try {\n await onFolderBeforeUpdate.publish({\n folder,\n original\n });\n const result = await storageOperations.updateFolder({ original, folder });\n await onFolderAfterUpdate.publish({\n folder: result,\n original\n });\n return result;\n } catch (error) {\n throw new WebinyError(\n error.message || \"Could not update folder.\",\n error.code || \"UPDATE_FOLDER_ERROR\",\n {\n folder\n }\n );\n }\n },\n\n async deleteFolder(id: string): Promise<void> {\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const folder = await storageOperations.getFolder({ tenant, locale, id });\n\n if (!folder) {\n throw new NotFoundError(`Folder \"${id}\" was not found!`);\n }\n\n try {\n await onFolderBeforeDelete.publish({\n folder\n });\n const result = storageOperations.deleteFolder({ folder });\n await onFolderAfterDelete.publish({\n folder\n });\n return result;\n } catch (error) {\n throw new WebinyError(\n error.message || \"Could not delete folder.\",\n error.code || \"DELETE_FOLDER_ERROR\",\n {\n folder\n }\n );\n }\n }\n };\n};\n"],"mappings":"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"}
|
package/context/index.d.ts
DELETED