@webiny/api-page-builder-import-export 5.36.2 → 5.37.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/client.js.map +1 -1
- package/export/combine/blocksHandler.js.map +1 -1
- package/export/combine/formsHandler.js.map +1 -1
- package/export/combine/index.js +20 -18
- package/export/combine/index.js.map +1 -1
- package/export/combine/pagesHandler.js.map +1 -1
- package/export/combine/templatesHandler.js.map +1 -1
- package/export/process/blocksHandler.js +10 -5
- package/export/process/blocksHandler.js.map +1 -1
- package/export/process/exporters/BlockExporter.d.ts +13 -0
- package/export/process/exporters/BlockExporter.js +81 -0
- package/export/process/exporters/BlockExporter.js.map +1 -0
- package/export/process/exporters/FormExporter.d.ts +9 -0
- package/export/process/exporters/FormExporter.js +34 -0
- package/export/process/exporters/FormExporter.js.map +1 -0
- package/export/process/exporters/PageExporter.d.ts +11 -0
- package/export/process/exporters/PageExporter.js +58 -0
- package/export/process/exporters/PageExporter.js.map +1 -0
- package/export/process/exporters/PageTemplateExporter.d.ts +11 -0
- package/export/process/exporters/PageTemplateExporter.js +56 -0
- package/export/process/exporters/PageTemplateExporter.js.map +1 -0
- package/export/process/formsHandler.js +5 -5
- package/export/process/formsHandler.js.map +1 -1
- package/export/process/index.js +20 -18
- package/export/process/index.js.map +1 -1
- package/export/process/pagesHandler.js +5 -5
- package/export/process/pagesHandler.js.map +1 -1
- package/export/process/templatesHandler.js +5 -5
- package/export/process/templatesHandler.js.map +1 -1
- package/export/s3Stream.js.map +1 -1
- package/export/utils.d.ts +2 -29
- package/export/utils.js +1 -154
- package/export/utils.js.map +1 -1
- package/export/zipper.js.map +1 -1
- package/graphql/crud/blocks.crud.js +12 -18
- package/graphql/crud/blocks.crud.js.map +1 -1
- package/graphql/crud/forms.crud.js +14 -9
- package/graphql/crud/forms.crud.js.map +1 -1
- package/graphql/crud/importExportTasks.crud.js +37 -31
- package/graphql/crud/importExportTasks.crud.js.map +1 -1
- package/graphql/crud/pages.crud.d.ts +1 -0
- package/graphql/crud/pages.crud.js +16 -11
- package/graphql/crud/pages.crud.js.map +1 -1
- package/graphql/crud/templates.crud.js +12 -8
- package/graphql/crud/templates.crud.js.map +1 -1
- package/graphql/crud.js.map +1 -1
- package/graphql/graphql/blocks.gql.js +1 -1
- package/graphql/graphql/blocks.gql.js.map +1 -1
- package/graphql/graphql/forms.gql.js.map +1 -1
- package/graphql/graphql/importExportTasks.gql.js.map +1 -1
- package/graphql/graphql/pages.gql.js.map +1 -1
- package/graphql/graphql/templates.gql.js.map +1 -1
- package/graphql/graphql/utils/resolve.d.ts +1 -1
- package/graphql/graphql/utils/resolve.js.map +1 -1
- package/graphql/graphql.js.map +1 -1
- package/graphql/index.js.map +1 -1
- package/graphql/types.d.ts +0 -1
- package/graphql/types.js.map +1 -1
- package/import/constants.js.map +1 -1
- package/import/create/blocksHandler.js +0 -2
- package/import/create/blocksHandler.js.map +1 -1
- package/import/create/formsHandler.js.map +1 -1
- package/import/create/index.js +20 -18
- package/import/create/index.js.map +1 -1
- package/import/create/pagesHandler.js.map +1 -1
- package/import/create/templatesHandler.js.map +1 -1
- package/import/process/blocks/blocksHandler.js +1 -2
- package/import/process/blocks/blocksHandler.js.map +1 -1
- package/import/process/blocks/importBlock.d.ts +2 -2
- package/import/process/blocks/importBlock.js +29 -3
- package/import/process/blocks/importBlock.js.map +1 -1
- package/import/process/forms/formsHandler.js.map +1 -1
- package/import/process/forms/importForm.d.ts +1 -1
- package/import/process/forms/importForm.js.map +1 -1
- package/import/process/index.js +20 -18
- package/import/process/index.js.map +1 -1
- package/import/process/pages/importPage.d.ts +1 -1
- package/import/process/pages/importPage.js +4 -4
- package/import/process/pages/importPage.js.map +1 -1
- package/import/process/pages/pagesHandler.js.map +1 -1
- package/import/process/templates/importTemplate.d.ts +1 -1
- package/import/process/templates/importTemplate.js.map +1 -1
- package/import/process/templates/templatesHandler.js.map +1 -1
- package/import/utils/deleteS3Folder.js.map +1 -1
- package/import/utils/extractAndUploadZipFileContents.js.map +1 -1
- package/import/utils/extractZipAndUploadToS3.js.map +1 -1
- package/import/utils/getFileNameWithoutExt.js.map +1 -1
- package/import/utils/index.js.map +1 -1
- package/import/utils/initialStats.js.map +1 -1
- package/import/utils/prepareDataDirMap.js.map +1 -1
- package/import/utils/updateFilesInData.js +2 -1
- package/import/utils/updateFilesInData.js.map +1 -1
- package/import/utils/uploadAssets.js +45 -7
- package/import/utils/uploadAssets.js.map +1 -1
- package/import/utils/uploadFilesFromS3.js.map +1 -1
- package/mockSecurity.js +0 -1
- package/mockSecurity.js.map +1 -1
- package/package.json +26 -29
- package/types.js +60 -8
- package/types.js.map +1 -1
@@ -11,21 +11,17 @@ var _fields = require("@commodo/fields");
|
|
11
11
|
var _commodoFieldsObject = require("commodo-fields-object");
|
12
12
|
var _validation = require("@webiny/validation");
|
13
13
|
var _api = require("@webiny/api");
|
14
|
-
var _checkBasePermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions"));
|
15
|
-
var _checkOwnPermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkOwnPermissions"));
|
16
14
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
17
15
|
var _types = require("../../types");
|
18
16
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
17
|
+
var _PagesPermissions = require("@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions");
|
19
18
|
/**
|
20
19
|
* Package @commodo/fields does not have types.
|
21
|
-
*/
|
22
|
-
// @ts-ignore
|
23
|
-
|
20
|
+
*/ // @ts-ignore
|
24
21
|
/**
|
25
22
|
* Package commodo-fields-object does not have types.
|
26
23
|
*/
|
27
24
|
// @ts-ignore
|
28
|
-
|
29
25
|
const validStatus = `${_types.ImportExportTaskStatus.PENDING}:${_types.ImportExportTaskStatus.PROCESSING}:${_types.ImportExportTaskStatus.COMPLETED}:${_types.ImportExportTaskStatus.FAILED}`;
|
30
26
|
const CreateDataModel = (0, _fields.withFields)({
|
31
27
|
status: (0, _fields.string)({
|
@@ -45,7 +41,6 @@ const UpdateDataModel = (0, _fields.withFields)({
|
|
45
41
|
stats: (0, _commodoFieldsObject.object)(),
|
46
42
|
error: (0, _commodoFieldsObject.object)()
|
47
43
|
})();
|
48
|
-
const PERMISSION_NAME = "pb.page";
|
49
44
|
var _default = ({
|
50
45
|
storageOperations
|
51
46
|
}) => new _api.ContextPlugin(async context => {
|
@@ -56,6 +51,11 @@ var _default = ({
|
|
56
51
|
console.log("Missing pageBuilder on context. Skipping ImportExportTasks crud.");
|
57
52
|
return;
|
58
53
|
}
|
54
|
+
const pagesPermissions = new _PagesPermissions.PagesPermissions({
|
55
|
+
getPermissions: () => context.security.getPermissions("pb.page"),
|
56
|
+
getIdentity: context.security.getIdentity,
|
57
|
+
fullAccessPermissionName: "pb.*"
|
58
|
+
});
|
59
59
|
const getLocale = () => {
|
60
60
|
const locale = context.i18n.getContentLocale();
|
61
61
|
if (!locale) {
|
@@ -68,7 +68,7 @@ var _default = ({
|
|
68
68
|
context.pageBuilder.importExportTask = {
|
69
69
|
storageOperations,
|
70
70
|
async getTask(id) {
|
71
|
-
|
71
|
+
await pagesPermissions.ensure({
|
72
72
|
rwd: "r"
|
73
73
|
});
|
74
74
|
const tenant = context.tenancy.getCurrentTenant();
|
@@ -91,12 +91,13 @@ var _default = ({
|
|
91
91
|
params
|
92
92
|
}));
|
93
93
|
}
|
94
|
-
|
95
|
-
|
94
|
+
await pagesPermissions.ensure({
|
95
|
+
owns: importExportTask.createdBy
|
96
|
+
});
|
96
97
|
return importExportTask;
|
97
98
|
},
|
98
99
|
async listTasks(params) {
|
99
|
-
|
100
|
+
await pagesPermissions.ensure({
|
100
101
|
rwd: "r"
|
101
102
|
});
|
102
103
|
const tenant = context.tenancy.getCurrentTenant();
|
@@ -115,7 +116,7 @@ var _default = ({
|
|
115
116
|
};
|
116
117
|
|
117
118
|
// If user can only manage own records, let's add that to the listing.
|
118
|
-
if (
|
119
|
+
if (await pagesPermissions.canAccessOnlyOwnRecords) {
|
119
120
|
const identity = context.security.getIdentity();
|
120
121
|
listParams.where.createdBy = identity.id;
|
121
122
|
}
|
@@ -129,7 +130,7 @@ var _default = ({
|
|
129
130
|
}
|
130
131
|
},
|
131
132
|
async createTask(input) {
|
132
|
-
await
|
133
|
+
await pagesPermissions.ensure({
|
133
134
|
rwd: "w"
|
134
135
|
});
|
135
136
|
const createDataModel = new CreateDataModel().populate(input);
|
@@ -160,15 +161,16 @@ var _default = ({
|
|
160
161
|
}
|
161
162
|
},
|
162
163
|
async updateTask(id, input) {
|
163
|
-
|
164
|
+
await pagesPermissions.ensure({
|
164
165
|
rwd: "w"
|
165
166
|
});
|
166
167
|
const original = await context.pageBuilder.importExportTask.getTask(id);
|
167
168
|
if (!original) {
|
168
169
|
throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
|
169
170
|
}
|
170
|
-
|
171
|
-
|
171
|
+
await pagesPermissions.ensure({
|
172
|
+
owns: original.createdBy
|
173
|
+
});
|
172
174
|
const updateDataModel = new UpdateDataModel().populate(input);
|
173
175
|
await updateDataModel.validate();
|
174
176
|
const data = await updateDataModel.toJSON({
|
@@ -189,15 +191,16 @@ var _default = ({
|
|
189
191
|
}
|
190
192
|
},
|
191
193
|
async deleteTask(id) {
|
192
|
-
|
194
|
+
await pagesPermissions.ensure({
|
193
195
|
rwd: "d"
|
194
196
|
});
|
195
197
|
const importExportTask = await context.pageBuilder.importExportTask.getTask(id);
|
196
198
|
if (!importExportTask) {
|
197
199
|
throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
|
198
200
|
}
|
199
|
-
|
200
|
-
|
201
|
+
await pagesPermissions.ensure({
|
202
|
+
owns: importExportTask.createdBy
|
203
|
+
});
|
201
204
|
try {
|
202
205
|
return await storageOperations.deleteTask({
|
203
206
|
task: importExportTask
|
@@ -209,15 +212,16 @@ var _default = ({
|
|
209
212
|
}
|
210
213
|
},
|
211
214
|
async updateStats(id, input) {
|
212
|
-
|
215
|
+
await pagesPermissions.ensure({
|
213
216
|
rwd: "w"
|
214
217
|
});
|
215
218
|
const original = await context.pageBuilder.importExportTask.getTask(id);
|
216
219
|
if (!original) {
|
217
220
|
throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
|
218
221
|
}
|
219
|
-
|
220
|
-
|
222
|
+
await pagesPermissions.ensure({
|
223
|
+
owns: original.createdBy
|
224
|
+
});
|
221
225
|
try {
|
222
226
|
return await storageOperations.updateTaskStats({
|
223
227
|
input,
|
@@ -230,7 +234,7 @@ var _default = ({
|
|
230
234
|
}
|
231
235
|
},
|
232
236
|
async createSubTask(parent, id, input) {
|
233
|
-
await
|
237
|
+
await pagesPermissions.ensure({
|
234
238
|
rwd: "w"
|
235
239
|
});
|
236
240
|
const createDataModel = new CreateDataModel().populate(input);
|
@@ -261,15 +265,16 @@ var _default = ({
|
|
261
265
|
}
|
262
266
|
},
|
263
267
|
async updateSubTask(parent, subTaskId, input) {
|
264
|
-
|
268
|
+
await pagesPermissions.ensure({
|
265
269
|
rwd: "w"
|
266
270
|
});
|
267
271
|
const original = await context.pageBuilder.importExportTask.getSubTask(parent, subTaskId);
|
268
272
|
if (!original) {
|
269
273
|
throw new _handlerGraphql.NotFoundError(`ImportExportTask parent: "${parent}" and id: "${subTaskId}" not found.`);
|
270
274
|
}
|
271
|
-
|
272
|
-
|
275
|
+
await pagesPermissions.ensure({
|
276
|
+
owns: original.createdBy
|
277
|
+
});
|
273
278
|
const updateDataModel = new UpdateDataModel().populate(input);
|
274
279
|
await updateDataModel.validate();
|
275
280
|
const data = await updateDataModel.toJSON({
|
@@ -291,7 +296,7 @@ var _default = ({
|
|
291
296
|
}
|
292
297
|
},
|
293
298
|
async getSubTask(parent, subTaskId) {
|
294
|
-
|
299
|
+
await pagesPermissions.ensure({
|
295
300
|
rwd: "r"
|
296
301
|
});
|
297
302
|
const tenant = context.tenancy.getCurrentTenant();
|
@@ -315,12 +320,13 @@ var _default = ({
|
|
315
320
|
params
|
316
321
|
}));
|
317
322
|
}
|
318
|
-
|
319
|
-
|
323
|
+
await pagesPermissions.ensure({
|
324
|
+
owns: importExportSubTask.createdBy
|
325
|
+
});
|
320
326
|
return importExportSubTask;
|
321
327
|
},
|
322
328
|
async listSubTasks(parent, status, limit) {
|
323
|
-
|
329
|
+
await pagesPermissions.ensure({
|
324
330
|
rwd: "r"
|
325
331
|
});
|
326
332
|
const tenant = context.tenancy.getCurrentTenant();
|
@@ -336,7 +342,7 @@ var _default = ({
|
|
336
342
|
};
|
337
343
|
|
338
344
|
// If user can only manage own records, let's add that to the listing.
|
339
|
-
if (
|
345
|
+
if (await pagesPermissions.canAccessOnlyOwnRecords()) {
|
340
346
|
const identity = context.security.getIdentity();
|
341
347
|
listParams.where.createdBy = identity.id;
|
342
348
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["validStatus","ImportExportTaskStatus","PENDING","PROCESSING","COMPLETED","FAILED","CreateDataModel","withFields","status","string","validation","create","data","object","input","stats","error","UpdateDataModel","PERMISSION_NAME","storageOperations","ContextPlugin","context","pageBuilder","console","log","getLocale","locale","i18n","getContentLocale","WebinyError","importExportTask","getTask","id","permission","checkBasePermissions","rwd","tenant","tenancy","getCurrentTenant","params","where","code","ex","message","identity","security","getIdentity","checkOwnPermissions","listTasks","sort","limit","listParams","Array","isArray","length","own","createdBy","items","createTask","createDataModel","populate","validate","mdbid","toJSON","createdOn","Date","toISOString","type","displayName","task","updateTask","original","NotFoundError","updateDataModel","onlyDirty","deleteTask","updateStats","updateTaskStats","createSubTask","parent","importExportSubTask","subTask","updateSubTask","subTaskId","getSubTask","listSubTasks"],"sources":["importExportTasks.crud.ts"],"sourcesContent":["import { mdbid } from \"@webiny/utils\";\n/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { string, withFields } from \"@commodo/fields\";\n/**\n * Package commodo-fields-object does not have types.\n */\n// @ts-ignore\nimport { object } from \"commodo-fields-object\";\nimport { validation } from \"@webiny/validation\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport checkBasePermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions\";\nimport checkOwnPermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkOwnPermissions\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport {\n ImportExportPluginsParams,\n ImportExportTask,\n ImportExportTaskStatus,\n ImportExportTaskStorageOperationsListSubTaskParams\n} from \"~/types\";\nimport { PbImportExportContext } from \"~/graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { PageElementStorageOperationsListParams } from \"@webiny/api-page-builder/types\";\n\nconst validStatus = `${ImportExportTaskStatus.PENDING}:${ImportExportTaskStatus.PROCESSING}:${ImportExportTaskStatus.COMPLETED}:${ImportExportTaskStatus.FAILED}`;\n\nconst CreateDataModel = withFields({\n status: string({\n validation: validation.create(`required,in:${validStatus}`)\n }),\n data: object(),\n input: object(),\n stats: object(),\n error: object()\n})();\n\nconst UpdateDataModel = withFields({\n status: string({\n validation: validation.create(`in:${validStatus}`)\n }),\n data: object(),\n input: object(),\n stats: object(),\n error: object()\n})();\n\nconst PERMISSION_NAME = \"pb.page\";\n\nexport default ({ storageOperations }: ImportExportPluginsParams) =>\n new ContextPlugin<PbImportExportContext>(async context => {\n /**\n * If pageBuilder is not defined on the context, do not continue, but log it.\n */\n if (!context.pageBuilder) {\n console.log(\"Missing pageBuilder on context. Skipping ImportExportTasks crud.\");\n return;\n }\n\n const getLocale = () => {\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in importExportTasks.crud.ts\",\n \"LOCALE_ERROR\"\n );\n }\n return locale;\n };\n\n // Modify context\n context.pageBuilder.importExportTask = {\n storageOperations,\n async getTask(id) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id\n }\n };\n\n let importExportTask: ImportExportTask | null = null;\n\n try {\n importExportTask = await storageOperations.getTask(params);\n\n if (!importExportTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportTask);\n\n return importExportTask;\n },\n\n async listTasks(params) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const { sort, limit } = params || {};\n\n const listParams: PageElementStorageOperationsListParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code\n },\n sort: Array.isArray(sort) && sort.length > 0 ? sort : [\"createdOn_ASC\"],\n limit: limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (permission.own) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportTask.\",\n ex.code || \"LIST_ELEMENTS_ERROR\",\n {\n params\n }\n );\n }\n },\n\n async createTask(input) {\n await checkBasePermissions(context, PERMISSION_NAME, { rwd: \"w\" });\n\n const createDataModel = new CreateDataModel().populate(input);\n await createDataModel.validate();\n\n const id: string = mdbid();\n const identity = context.security.getIdentity();\n\n const data: ImportExportTask = await createDataModel.toJSON();\n\n const importExportTask: ImportExportTask = {\n ...data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createTask({\n input: data,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateTask(id, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n const updateDataModel = new UpdateDataModel().populate(input);\n await updateDataModel.validate();\n\n const data = await updateDataModel.toJSON({ onlyDirty: true });\n\n const importExportTask: ImportExportTask = {\n ...original,\n ...data\n };\n\n try {\n return await storageOperations.updateTask({\n input: data,\n original,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original,\n importExportTask\n }\n );\n }\n },\n\n async deleteTask(id) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"d\"\n });\n\n const importExportTask = await context.pageBuilder.importExportTask.getTask(id);\n if (!importExportTask) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportTask);\n\n try {\n return await storageOperations.deleteTask({\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete importExportTask.\",\n ex.code || \"DELETE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateStats(id, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n try {\n return await storageOperations.updateTaskStats({\n input,\n original\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original\n }\n );\n }\n },\n\n async createSubTask(parent, id, input) {\n await checkBasePermissions(context, PERMISSION_NAME, { rwd: \"w\" });\n\n const createDataModel = new CreateDataModel().populate(input);\n await createDataModel.validate();\n\n const identity = context.security.getIdentity();\n\n const data = await createDataModel.toJSON();\n\n const importExportSubTask: ImportExportTask = {\n ...data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id: id,\n parent: parent,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createSubTask({\n input: data,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportSubTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask\n }\n );\n }\n },\n\n async updateSubTask(parent, subTaskId, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getSubTask(\n parent,\n subTaskId\n );\n if (!original) {\n throw new NotFoundError(\n `ImportExportTask parent: \"${parent}\" and id: \"${subTaskId}\" not found.`\n );\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n const updateDataModel = new UpdateDataModel().populate(input);\n await updateDataModel.validate();\n\n const data = await updateDataModel.toJSON({ onlyDirty: true });\n // TODO: Merge recursively\n const importExportSubTask: ImportExportTask = {\n ...original,\n ...data\n };\n\n try {\n return await storageOperations.updateSubTask({\n input: data,\n original,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportSubTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask,\n original\n }\n );\n }\n },\n\n async getSubTask(parent, subTaskId) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id: subTaskId,\n parent: parent\n }\n };\n\n let importExportSubTask: ImportExportTask | null = null;\n\n try {\n importExportSubTask = await storageOperations.getSubTask(params);\n if (!importExportSubTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportSubTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportSubTask);\n\n return importExportSubTask;\n },\n\n async listSubTasks(parent, status, limit) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const listParams: ImportExportTaskStorageOperationsListSubTaskParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n parent: parent,\n status\n },\n limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (permission.own) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listSubTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportSubTask.\",\n ex.code || \"LIST_IMPORT_EXPORT_TASK_ERROR\",\n {\n params: {\n parent,\n status,\n limit\n }\n }\n );\n }\n }\n };\n });\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_utils","require","_fields","_commodoFieldsObject","_validation","_api","_handlerGraphql","_types","_error","_interopRequireDefault","_PagesPermissions","validStatus","ImportExportTaskStatus","PENDING","PROCESSING","COMPLETED","FAILED","CreateDataModel","withFields","status","string","validation","create","data","object","input","stats","error","UpdateDataModel","_default","storageOperations","ContextPlugin","context","pageBuilder","console","log","pagesPermissions","PagesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","getLocale","locale","i18n","getContentLocale","WebinyError","importExportTask","getTask","id","ensure","rwd","tenant","tenancy","getCurrentTenant","params","where","code","ex","message","_objectSpread2","default","owns","createdBy","listTasks","sort","limit","listParams","Array","isArray","length","canAccessOnlyOwnRecords","identity","items","createTask","createDataModel","populate","validate","mdbid","toJSON","createdOn","Date","toISOString","type","displayName","task","updateTask","original","NotFoundError","updateDataModel","onlyDirty","deleteTask","updateStats","updateTaskStats","createSubTask","parent","importExportSubTask","subTask","updateSubTask","subTaskId","getSubTask","listSubTasks","exports"],"sources":["importExportTasks.crud.ts"],"sourcesContent":["import { mdbid } from \"@webiny/utils\";\n/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { string, withFields } from \"@commodo/fields\";\n/**\n * Package commodo-fields-object does not have types.\n */\n// @ts-ignore\nimport { object } from \"commodo-fields-object\";\nimport { validation } from \"@webiny/validation\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport {\n ImportExportPluginsParams,\n ImportExportTask,\n ImportExportTaskStatus,\n ImportExportTaskStorageOperationsListSubTaskParams\n} from \"~/types\";\nimport { PbImportExportContext } from \"~/graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { PageElementStorageOperationsListParams } from \"@webiny/api-page-builder/types\";\nimport { PagesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions\";\n\nconst validStatus = `${ImportExportTaskStatus.PENDING}:${ImportExportTaskStatus.PROCESSING}:${ImportExportTaskStatus.COMPLETED}:${ImportExportTaskStatus.FAILED}`;\n\nconst CreateDataModel = withFields({\n status: string({\n validation: validation.create(`required,in:${validStatus}`)\n }),\n data: object(),\n input: object(),\n stats: object(),\n error: object()\n})();\n\nconst UpdateDataModel = withFields({\n status: string({\n validation: validation.create(`in:${validStatus}`)\n }),\n data: object(),\n input: object(),\n stats: object(),\n error: object()\n})();\n\nexport default ({ storageOperations }: ImportExportPluginsParams) =>\n new ContextPlugin<PbImportExportContext>(async context => {\n /**\n * If pageBuilder is not defined on the context, do not continue, but log it.\n */\n if (!context.pageBuilder) {\n console.log(\"Missing pageBuilder on context. Skipping ImportExportTasks crud.\");\n return;\n }\n\n const pagesPermissions = new PagesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.page\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n const getLocale = () => {\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in importExportTasks.crud.ts\",\n \"LOCALE_ERROR\"\n );\n }\n return locale;\n };\n\n // Modify context\n context.pageBuilder.importExportTask = {\n storageOperations,\n async getTask(id) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id\n }\n };\n\n let importExportTask: ImportExportTask | null = null;\n\n try {\n importExportTask = await storageOperations.getTask(params);\n\n if (!importExportTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n await pagesPermissions.ensure({ owns: importExportTask.createdBy });\n\n return importExportTask;\n },\n\n async listTasks(params) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const { sort, limit } = params || {};\n\n const listParams: PageElementStorageOperationsListParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code\n },\n sort: Array.isArray(sort) && sort.length > 0 ? sort : [\"createdOn_ASC\"],\n limit: limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (await pagesPermissions.canAccessOnlyOwnRecords) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportTask.\",\n ex.code || \"LIST_ELEMENTS_ERROR\",\n {\n params\n }\n );\n }\n },\n\n async createTask(input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const createDataModel = new CreateDataModel().populate(input);\n await createDataModel.validate();\n\n const id: string = mdbid();\n const identity = context.security.getIdentity();\n\n const data: ImportExportTask = await createDataModel.toJSON();\n\n const importExportTask: ImportExportTask = {\n ...data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createTask({\n input: data,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateTask(id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n const updateDataModel = new UpdateDataModel().populate(input);\n await updateDataModel.validate();\n\n const data = await updateDataModel.toJSON({ onlyDirty: true });\n\n const importExportTask: ImportExportTask = {\n ...original,\n ...data\n };\n\n try {\n return await storageOperations.updateTask({\n input: data,\n original,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original,\n importExportTask\n }\n );\n }\n },\n\n async deleteTask(id) {\n await pagesPermissions.ensure({ rwd: \"d\" });\n\n const importExportTask = await context.pageBuilder.importExportTask.getTask(id);\n if (!importExportTask) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: importExportTask.createdBy });\n\n try {\n return await storageOperations.deleteTask({\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete importExportTask.\",\n ex.code || \"DELETE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateStats(id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n try {\n return await storageOperations.updateTaskStats({\n input,\n original\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original\n }\n );\n }\n },\n\n async createSubTask(parent, id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const createDataModel = new CreateDataModel().populate(input);\n await createDataModel.validate();\n\n const identity = context.security.getIdentity();\n\n const data = await createDataModel.toJSON();\n\n const importExportSubTask: ImportExportTask = {\n ...data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id: id,\n parent: parent,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createSubTask({\n input: data,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportSubTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask\n }\n );\n }\n },\n\n async updateSubTask(parent, subTaskId, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getSubTask(\n parent,\n subTaskId\n );\n if (!original) {\n throw new NotFoundError(\n `ImportExportTask parent: \"${parent}\" and id: \"${subTaskId}\" not found.`\n );\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n const updateDataModel = new UpdateDataModel().populate(input);\n await updateDataModel.validate();\n\n const data = await updateDataModel.toJSON({ onlyDirty: true });\n // TODO: Merge recursively\n const importExportSubTask: ImportExportTask = {\n ...original,\n ...data\n };\n\n try {\n return await storageOperations.updateSubTask({\n input: data,\n original,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportSubTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask,\n original\n }\n );\n }\n },\n\n async getSubTask(parent, subTaskId) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id: subTaskId,\n parent: parent\n }\n };\n\n let importExportSubTask: ImportExportTask | null = null;\n\n try {\n importExportSubTask = await storageOperations.getSubTask(params);\n if (!importExportSubTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportSubTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n await pagesPermissions.ensure({ owns: importExportSubTask.createdBy });\n\n return importExportSubTask;\n },\n\n async listSubTasks(parent, status, limit) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const listParams: ImportExportTaskStorageOperationsListSubTaskParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n parent: parent,\n status\n },\n limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (await pagesPermissions.canAccessOnlyOwnRecords()) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listSubTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportSubTask.\",\n ex.code || \"LIST_IMPORT_EXPORT_TASK_ERROR\",\n {\n params: {\n parent,\n status,\n limit\n }\n }\n );\n }\n }\n };\n });\n"],"mappings":"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"}
|
@@ -4,27 +4,32 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
5
5
|
value: true
|
6
6
|
});
|
7
|
-
exports.default = void 0;
|
7
|
+
exports.default = exports.EXPORT_PAGES_FOLDER_KEY = void 0;
|
8
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
9
9
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
10
10
|
var _api = require("@webiny/api");
|
11
|
-
var _checkBasePermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions"));
|
12
11
|
var _types = require("../../types");
|
13
12
|
var _client = require("../../client");
|
14
13
|
var _utils = require("../../import/utils");
|
15
|
-
var _utils2 = require("
|
16
|
-
var
|
17
|
-
const
|
14
|
+
var _utils2 = require("@webiny/utils");
|
15
|
+
var _PagesPermissions = require("@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions");
|
16
|
+
const EXPORT_PAGES_FOLDER_KEY = "WEBINY_PB_EXPORT_PAGES";
|
17
|
+
exports.EXPORT_PAGES_FOLDER_KEY = EXPORT_PAGES_FOLDER_KEY;
|
18
18
|
const EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
|
19
19
|
const IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
|
20
20
|
var _default = new _api.ContextPlugin(context => {
|
21
|
+
const pagesPermissions = new _PagesPermissions.PagesPermissions({
|
22
|
+
getPermissions: () => context.security.getPermissions("pb.page"),
|
23
|
+
getIdentity: context.security.getIdentity,
|
24
|
+
fullAccessPermissionName: "pb.*"
|
25
|
+
});
|
21
26
|
const importExportCrud = {
|
22
27
|
async importPages({
|
23
28
|
category: categorySlug,
|
24
29
|
zipFileUrl,
|
25
30
|
meta
|
26
31
|
}) {
|
27
|
-
await
|
32
|
+
await pagesPermissions.ensure({
|
28
33
|
rwd: "w"
|
29
34
|
});
|
30
35
|
|
@@ -71,7 +76,7 @@ var _default = new _api.ContextPlugin(context => {
|
|
71
76
|
sort,
|
72
77
|
search
|
73
78
|
}) {
|
74
|
-
await
|
79
|
+
await pagesPermissions.ensure({
|
75
80
|
rwd: "w"
|
76
81
|
});
|
77
82
|
let pageIds = initialPageIds || [];
|
@@ -104,12 +109,12 @@ var _default = new _api.ContextPlugin(context => {
|
|
104
109
|
const task = await context.pageBuilder.importExportTask.createTask({
|
105
110
|
status: _types.ImportExportTaskStatus.PENDING
|
106
111
|
});
|
107
|
-
const exportPagesDataKey = `${
|
108
|
-
// For each page create a sub
|
112
|
+
const exportPagesDataKey = `${EXPORT_PAGES_FOLDER_KEY}/${task.id}`;
|
113
|
+
// For each page create a sub-task and invoke the process handler.
|
109
114
|
for (let i = 0; i < pageIds.length; i++) {
|
110
115
|
const pageId = pageIds[i];
|
111
|
-
// Create sub
|
112
|
-
await context.pageBuilder.importExportTask.createSubTask(task.id, (0,
|
116
|
+
// Create sub-task.
|
117
|
+
await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
|
113
118
|
status: _types.ImportExportTaskStatus.PENDING,
|
114
119
|
input: {
|
115
120
|
pageId,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["PERMISSION_NAME","EXPORT_PAGES_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_PAGES_CREATE_HANDLER","IMPORT_CREATE_HANDLER","ContextPlugin","context","importExportCrud","importPages","category","categorySlug","zipFileUrl","meta","checkBasePermissions","rwd","pageBuilder","getCategory","NotFoundError","task","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","invokeHandlerClient","name","payload","type","identity","security","getIdentity","description","exportPages","ids","initialPageIds","revisionType","where","sort","search","pageIds","Array","isArray","length","pages","hasMoreItems","cursor","totalCount","listLatestPages","after","forEach","page","push","id","WebinyError","exportPagesDataKey","EXPORT_PAGES_FOLDER_KEY","i","pageId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex"],"sources":["pages.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport checkBasePermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions\";\nimport { ImportExportTaskStatus, PagesImportExportCrud, PbImportExportContext } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport { Payload as ExportPagesProcessHandlerPayload } from \"~/export/process\";\nimport { EXPORT_PAGES_FOLDER_KEY } from \"~/export/utils\";\nimport { MetaResponse } from \"@webiny/api-page-builder/types\";\nimport { zeroPad } from \"@webiny/utils\";\n\nconst PERMISSION_NAME = \"pb.page\";\nconst EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER as string;\nconst IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const importExportCrud: PagesImportExportCrud = {\n async importPages({ category: categorySlug, zipFileUrl, meta }) {\n await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n\n // Bail out early if category not found\n const category = await context.pageBuilder.getCategory(categorySlug);\n if (!category) {\n throw new NotFoundError(`Category with slug \"${categorySlug}\" not found.`);\n }\n\n // Create a task for import page\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING,\n input: {\n category: categorySlug,\n zipFileUrl\n }\n });\n /**\n * Import Pages\n * ImportPages\n * importPages\n */\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_PAGES_CREATE_HANDLER,\n payload: {\n category: categorySlug,\n zipFileUrl,\n task,\n type: \"page\",\n identity: context.security.getIdentity(),\n meta\n },\n description: \"Import Pages - create\"\n });\n\n return {\n task\n };\n },\n\n async exportPages({ ids: initialPageIds, revisionType, where, sort, search }) {\n await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n let pageIds: string[] = initialPageIds || [];\n // If no ids are provided then it means we want to export all pages\n if (!initialPageIds || (Array.isArray(initialPageIds) && initialPageIds.length === 0)) {\n pageIds = [];\n let pages = [];\n let meta: MetaResponse = {\n hasMoreItems: true,\n cursor: null,\n totalCount: 0\n };\n // Paginate pages\n while (meta.hasMoreItems) {\n [pages, meta] = await context.pageBuilder.listLatestPages({\n after: meta.cursor,\n where: where,\n sort: sort,\n search: search\n });\n // Save page ids\n pages.forEach(page => pageIds.push(page.id));\n }\n }\n\n if (pageIds.length === 0) {\n throw new WebinyError(\n \"Cannot export pages - no pages found for provided inputs.\",\n \"EMPTY_EXPORT_NO_PAGES_FOUND\"\n );\n }\n\n // Create the main task for page export.\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING\n });\n const exportPagesDataKey = `${EXPORT_PAGES_FOLDER_KEY}/${task.id}`;\n // For each page create a sub task and invoke the process handler.\n for (let i = 0; i < pageIds.length; i++) {\n const pageId = pageIds[i];\n // Create sub task.\n await context.pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n input: {\n pageId,\n exportPagesDataKey,\n revisionType\n }\n }\n );\n }\n // Update main task status.\n await context.pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(pageIds.length),\n input: {\n exportPagesDataKey,\n revisionType\n }\n });\n\n /**\n * Export Pages\n * ExportPages\n * exportPages\n */\n // Invoke handler.\n await invokeHandlerClient<ExportPagesProcessHandlerPayload>({\n context,\n name: EXPORT_PAGES_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n type: \"page\",\n identity: context.security.getIdentity()\n },\n description: \"Export pages - process\"\n });\n\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.pages = importExportCrud;\n});\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_api","_types","_client","_utils","_utils2","_PagesPermissions","EXPORT_PAGES_FOLDER_KEY","exports","EXPORT_PAGES_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_PAGES_CREATE_HANDLER","IMPORT_CREATE_HANDLER","_default","ContextPlugin","context","pagesPermissions","PagesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","importExportCrud","importPages","category","categorySlug","zipFileUrl","meta","ensure","rwd","pageBuilder","getCategory","NotFoundError","task","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","invokeHandlerClient","name","payload","type","identity","description","exportPages","ids","initialPageIds","revisionType","where","sort","search","pageIds","Array","isArray","length","pages","hasMoreItems","cursor","totalCount","listLatestPages","after","forEach","page","push","id","WebinyError","exportPagesDataKey","i","pageId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex","default"],"sources":["pages.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { ImportExportTaskStatus, PagesImportExportCrud, PbImportExportContext } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport { Payload as ExportPagesProcessHandlerPayload } from \"~/export/process\";\nimport { MetaResponse } from \"@webiny/api-page-builder/types\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { PagesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions\";\n\nexport const EXPORT_PAGES_FOLDER_KEY = \"WEBINY_PB_EXPORT_PAGES\";\nconst EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER as string;\nconst IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const pagesPermissions = new PagesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.page\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n const importExportCrud: PagesImportExportCrud = {\n async importPages({ category: categorySlug, zipFileUrl, meta }) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n // Bail out early if category not found\n const category = await context.pageBuilder.getCategory(categorySlug);\n if (!category) {\n throw new NotFoundError(`Category with slug \"${categorySlug}\" not found.`);\n }\n\n // Create a task for import page\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING,\n input: {\n category: categorySlug,\n zipFileUrl\n }\n });\n /**\n * Import Pages\n * ImportPages\n * importPages\n */\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_PAGES_CREATE_HANDLER,\n payload: {\n category: categorySlug,\n zipFileUrl,\n task,\n type: \"page\",\n identity: context.security.getIdentity(),\n meta\n },\n description: \"Import Pages - create\"\n });\n\n return {\n task\n };\n },\n\n async exportPages({ ids: initialPageIds, revisionType, where, sort, search }) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n let pageIds: string[] = initialPageIds || [];\n // If no ids are provided then it means we want to export all pages\n if (!initialPageIds || (Array.isArray(initialPageIds) && initialPageIds.length === 0)) {\n pageIds = [];\n let pages = [];\n let meta: MetaResponse = {\n hasMoreItems: true,\n cursor: null,\n totalCount: 0\n };\n // Paginate pages\n while (meta.hasMoreItems) {\n [pages, meta] = await context.pageBuilder.listLatestPages({\n after: meta.cursor,\n where: where,\n sort: sort,\n search: search\n });\n // Save page ids\n pages.forEach(page => pageIds.push(page.id));\n }\n }\n\n if (pageIds.length === 0) {\n throw new WebinyError(\n \"Cannot export pages - no pages found for provided inputs.\",\n \"EMPTY_EXPORT_NO_PAGES_FOUND\"\n );\n }\n\n // Create the main task for page export.\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING\n });\n const exportPagesDataKey = `${EXPORT_PAGES_FOLDER_KEY}/${task.id}`;\n // For each page create a sub-task and invoke the process handler.\n for (let i = 0; i < pageIds.length; i++) {\n const pageId = pageIds[i];\n // Create sub-task.\n await context.pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n input: {\n pageId,\n exportPagesDataKey,\n revisionType\n }\n }\n );\n }\n // Update main task status.\n await context.pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(pageIds.length),\n input: {\n exportPagesDataKey,\n revisionType\n }\n });\n\n /**\n * Export Pages\n * ExportPages\n * exportPages\n */\n // Invoke handler.\n await invokeHandlerClient<ExportPagesProcessHandlerPayload>({\n context,\n name: EXPORT_PAGES_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n type: \"page\",\n identity: context.security.getIdentity()\n },\n description: \"Export pages - process\"\n });\n\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.pages = importExportCrud;\n});\n"],"mappings":"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"}
|
@@ -7,21 +7,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.default = void 0;
|
8
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
9
9
|
var _api = require("@webiny/api");
|
10
|
-
var _checkBasePermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions"));
|
11
10
|
var _types = require("../../types");
|
12
11
|
var _client = require("../../client");
|
13
12
|
var _utils = require("../../import/utils");
|
14
|
-
var _utils2 = require("
|
15
|
-
var
|
16
|
-
const
|
13
|
+
var _utils2 = require("@webiny/utils");
|
14
|
+
var _PageTemplatesPermissions = require("@webiny/api-page-builder/graphql/crud/permissions/PageTemplatesPermissions");
|
15
|
+
const EXPORT_TEMPLATES_FOLDER_KEY = "WEBINY_PB_EXPORT_TEMPLATE";
|
17
16
|
const EXPORT_TEMPLATES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
|
18
17
|
const IMPORT_TEMPLATES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
|
19
18
|
var _default = new _api.ContextPlugin(context => {
|
19
|
+
const pagesPermissions = new _PageTemplatesPermissions.PageTemplatesPermissions({
|
20
|
+
getPermissions: () => context.security.getPermissions("pb.template"),
|
21
|
+
getIdentity: context.security.getIdentity,
|
22
|
+
fullAccessPermissionName: "pb.*"
|
23
|
+
});
|
20
24
|
const importExportCrud = {
|
21
25
|
async importTemplates({
|
22
26
|
zipFileUrl
|
23
27
|
}) {
|
24
|
-
await
|
28
|
+
await pagesPermissions.ensure({
|
25
29
|
rwd: "w"
|
26
30
|
});
|
27
31
|
|
@@ -55,7 +59,7 @@ var _default = new _api.ContextPlugin(context => {
|
|
55
59
|
async exportTemplates({
|
56
60
|
ids: initialTemplateIds
|
57
61
|
}) {
|
58
|
-
await
|
62
|
+
await pagesPermissions.ensure({
|
59
63
|
rwd: "w"
|
60
64
|
});
|
61
65
|
let templateIds = initialTemplateIds || [];
|
@@ -74,12 +78,12 @@ var _default = new _api.ContextPlugin(context => {
|
|
74
78
|
const task = await context.pageBuilder.importExportTask.createTask({
|
75
79
|
status: _types.ImportExportTaskStatus.PENDING
|
76
80
|
});
|
77
|
-
const exportTemplatesDataKey = `${
|
81
|
+
const exportTemplatesDataKey = `${EXPORT_TEMPLATES_FOLDER_KEY}/${task.id}`;
|
78
82
|
// For each template create a sub task and invoke the process handler.
|
79
83
|
for (let i = 0; i < templateIds.length; i++) {
|
80
84
|
const templateId = templateIds[i];
|
81
85
|
// Create sub task.
|
82
|
-
await context.pageBuilder.importExportTask.createSubTask(task.id, (0,
|
86
|
+
await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
|
83
87
|
status: _types.ImportExportTaskStatus.PENDING,
|
84
88
|
input: {
|
85
89
|
templateId,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_api","_types","_client","_utils","_utils2","_PageTemplatesPermissions","EXPORT_TEMPLATES_FOLDER_KEY","EXPORT_TEMPLATES_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_TEMPLATES_CREATE_HANDLER","IMPORT_CREATE_HANDLER","_default","ContextPlugin","context","pagesPermissions","PageTemplatesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","importExportCrud","importTemplates","zipFileUrl","ensure","rwd","task","pageBuilder","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","invokeHandlerClient","name","payload","type","identity","description","exportTemplates","ids","initialTemplateIds","templateIds","Array","isArray","length","templates","listPageTemplates","forEach","template","push","id","WebinyError","exportTemplatesDataKey","i","templateId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex","exports","default"],"sources":["templates.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { ImportExportTaskStatus, TemplatesImportExportCrud, PbImportExportContext } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport { Payload as ExportTemplatesProcessHandlerPayload } from \"~/export/process\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { PageTemplatesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PageTemplatesPermissions\";\n\nconst EXPORT_TEMPLATES_FOLDER_KEY = \"WEBINY_PB_EXPORT_TEMPLATE\";\nconst EXPORT_TEMPLATES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER as string;\nconst IMPORT_TEMPLATES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const pagesPermissions = new PageTemplatesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.template\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n const importExportCrud: TemplatesImportExportCrud = {\n async importTemplates({ zipFileUrl }) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n // Create a task for import template\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING,\n input: {\n zipFileUrl\n }\n });\n /**\n * Import Templates\n * ImportTemplates\n * importTemplates\n */\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_TEMPLATES_CREATE_HANDLER,\n payload: {\n zipFileUrl,\n task,\n type: \"template\",\n identity: context.security.getIdentity()\n },\n description: \"Import Templates - create\"\n });\n\n return {\n task\n };\n },\n\n async exportTemplates({ ids: initialTemplateIds }) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n let templateIds: string[] = initialTemplateIds || [];\n // If no ids are provided then it means we want to export all templates\n if (\n !initialTemplateIds ||\n (Array.isArray(initialTemplateIds) && initialTemplateIds.length === 0)\n ) {\n templateIds = [];\n const templates = await context.pageBuilder.listPageTemplates();\n // Save template ids\n templates.forEach(template => templateIds.push(template.id));\n }\n\n if (templateIds.length === 0) {\n throw new WebinyError(\n \"Cannot export templates - no templates found for provided inputs.\",\n \"EMPTY_EXPORT_NO_TEMPLATES_FOUND\"\n );\n }\n\n // Create the main task for templates export.\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING\n });\n const exportTemplatesDataKey = `${EXPORT_TEMPLATES_FOLDER_KEY}/${task.id}`;\n // For each template create a sub task and invoke the process handler.\n for (let i = 0; i < templateIds.length; i++) {\n const templateId = templateIds[i];\n // Create sub task.\n await context.pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n input: {\n templateId,\n exportTemplatesDataKey\n }\n }\n );\n }\n // Update main task status.\n await context.pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(templateIds.length),\n input: {\n exportTemplatesDataKey\n }\n });\n\n /**\n * Export Templates\n * ExportTemplates\n * exportTemplates\n */\n // Invoke handler.\n await invokeHandlerClient<ExportTemplatesProcessHandlerPayload>({\n context,\n name: EXPORT_TEMPLATES_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n type: \"template\",\n identity: context.security.getIdentity()\n },\n description: \"Export templates - process\"\n });\n\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.templates = importExportCrud;\n});\n"],"mappings":"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"}
|
package/graphql/crud.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["params","blocks","forms","pages","templates","importExportTask"],"sources":["crud.ts"],"sourcesContent":["import blocks from \"./crud/blocks.crud\";\nimport forms from \"./crud/forms.crud\";\nimport pages from \"./crud/pages.crud\";\nimport templates from \"./crud/templates.crud\";\nimport importExportTask from \"./crud/importExportTasks.crud\";\nimport { ImportExportPluginsParams } from \"~/graphql/types\";\n\nexport default (params: ImportExportPluginsParams) => [\n blocks,\n forms,\n pages,\n templates,\n importExportTask(params as ImportExportPluginsParams)\n];\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAA6D,
|
1
|
+
{"version":3,"names":["_blocks","_interopRequireDefault","require","_forms","_pages","_templates","_importExportTasks","_default","params","blocks","forms","pages","templates","importExportTask","exports","default"],"sources":["crud.ts"],"sourcesContent":["import blocks from \"./crud/blocks.crud\";\nimport forms from \"./crud/forms.crud\";\nimport pages from \"./crud/pages.crud\";\nimport templates from \"./crud/templates.crud\";\nimport importExportTask from \"./crud/importExportTasks.crud\";\nimport { ImportExportPluginsParams } from \"~/graphql/types\";\n\nexport default (params: ImportExportPluginsParams) => [\n blocks,\n forms,\n pages,\n templates,\n importExportTask(params as ImportExportPluginsParams)\n];\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,kBAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA6D,IAAAK,QAAA,GAG7CC,MAAiC,IAAK,CAClDC,eAAM,EACNC,cAAK,EACLC,cAAK,EACLC,kBAAS,EACT,IAAAC,0BAAgB,EAACL,MAAmC,CAAC,CACxD;AAAAM,OAAA,CAAAC,OAAA,GAAAR,QAAA"}
|
@@ -33,7 +33,7 @@ const plugin = {
|
|
33
33
|
exportBlocks(ids: [ID!], where: PbListPageBlocksWhereInput): PbExportBlockResponse
|
34
34
|
|
35
35
|
# Import blocks
|
36
|
-
importBlocks(
|
36
|
+
importBlocks(zipFileUrl: String): PbImportBlockResponse
|
37
37
|
}
|
38
38
|
`,
|
39
39
|
resolvers: {
|