@webiny/api-page-builder-import-export 0.0.0-ee-vpcs.549378cf03
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/LICENSE +21 -0
- package/README.md +17 -0
- package/client.d.ts +8 -0
- package/client.js +47 -0
- package/client.js.map +1 -0
- package/export/combine/blocksHandler.d.ts +6 -0
- package/export/combine/blocksHandler.js +106 -0
- package/export/combine/blocksHandler.js.map +1 -0
- package/export/combine/index.d.ts +16 -0
- package/export/combine/index.js +30 -0
- package/export/combine/index.js.map +1 -0
- package/export/combine/pagesHandler.d.ts +6 -0
- package/export/combine/pagesHandler.js +106 -0
- package/export/combine/pagesHandler.js.map +1 -0
- package/export/process/blocksHandler.d.ts +6 -0
- package/export/process/blocksHandler.js +176 -0
- package/export/process/blocksHandler.js.map +1 -0
- package/export/process/index.d.ts +20 -0
- package/export/process/index.js +27 -0
- package/export/process/index.js.map +1 -0
- package/export/process/pagesHandler.d.ts +6 -0
- package/export/process/pagesHandler.js +204 -0
- package/export/process/pagesHandler.js.map +1 -0
- package/export/s3Stream.d.ts +31 -0
- package/export/s3Stream.js +113 -0
- package/export/s3Stream.js.map +1 -0
- package/export/utils.d.ts +16 -0
- package/export/utils.js +135 -0
- package/export/utils.js.map +1 -0
- package/export/zipper.d.ts +37 -0
- package/export/zipper.js +136 -0
- package/export/zipper.js.map +1 -0
- package/graphql/crud/blocks.crud.d.ts +4 -0
- package/graphql/crud/blocks.crud.js +155 -0
- package/graphql/crud/blocks.crud.js.map +1 -0
- package/graphql/crud/importExportTasks.crud.d.ts +5 -0
- package/graphql/crud/importExportTasks.crud.js +411 -0
- package/graphql/crud/importExportTasks.crud.js.map +1 -0
- package/graphql/crud/pages.crud.d.ts +4 -0
- package/graphql/crud/pages.crud.js +172 -0
- package/graphql/crud/pages.crud.js.map +1 -0
- package/graphql/crud.d.ts +3 -0
- package/graphql/crud.js +18 -0
- package/graphql/crud.js.map +1 -0
- package/graphql/graphql/blocks.gql.d.ts +4 -0
- package/graphql/graphql/blocks.gql.js +57 -0
- package/graphql/graphql/blocks.gql.js.map +1 -0
- package/graphql/graphql/importExportTasks.gql.d.ts +4 -0
- package/graphql/graphql/importExportTasks.gql.js +80 -0
- package/graphql/graphql/importExportTasks.gql.js.map +1 -0
- package/graphql/graphql/pages.gql.d.ts +4 -0
- package/graphql/graphql/pages.gql.js +68 -0
- package/graphql/graphql/pages.gql.js.map +1 -0
- package/graphql/graphql/utils/resolve.d.ts +3 -0
- package/graphql/graphql/utils/resolve.js +18 -0
- package/graphql/graphql/utils/resolve.js.map +1 -0
- package/graphql/graphql.d.ts +3 -0
- package/graphql/graphql.js +17 -0
- package/graphql/graphql.js.map +1 -0
- package/graphql/index.d.ts +3 -0
- package/graphql/index.js +16 -0
- package/graphql/index.js.map +1 -0
- package/graphql/types.d.ts +82 -0
- package/graphql/types.js +5 -0
- package/graphql/types.js.map +1 -0
- package/import/create/blocksHandler.d.ts +3 -0
- package/import/create/blocksHandler.js +110 -0
- package/import/create/blocksHandler.js.map +1 -0
- package/import/create/index.d.ts +23 -0
- package/import/create/index.js +30 -0
- package/import/create/index.js.map +1 -0
- package/import/create/pagesHandler.d.ts +3 -0
- package/import/create/pagesHandler.js +110 -0
- package/import/create/pagesHandler.js.map +1 -0
- package/import/process/blocksHandler.d.ts +3 -0
- package/import/process/blocksHandler.js +175 -0
- package/import/process/blocksHandler.js.map +1 -0
- package/import/process/index.d.ts +19 -0
- package/import/process/index.js +27 -0
- package/import/process/index.js.map +1 -0
- package/import/process/pagesHandler.d.ts +3 -0
- package/import/process/pagesHandler.js +180 -0
- package/import/process/pagesHandler.js.map +1 -0
- package/import/utils.d.ts +49 -0
- package/import/utils.js +641 -0
- package/import/utils.js.map +1 -0
- package/mockSecurity.d.ts +2 -0
- package/mockSecurity.js +13 -0
- package/mockSecurity.js.map +1 -0
- package/package.json +82 -0
- package/types.d.ts +190 -0
- package/types.js +42 -0
- package/types.js.map +1 -0
@@ -0,0 +1,411 @@
|
|
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.default = void 0;
|
9
|
+
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
11
|
+
|
12
|
+
var _mdbid = _interopRequireDefault(require("mdbid"));
|
13
|
+
|
14
|
+
var _fields = require("@commodo/fields");
|
15
|
+
|
16
|
+
var _commodoFieldsObject = require("commodo-fields-object");
|
17
|
+
|
18
|
+
var _validation = require("@webiny/validation");
|
19
|
+
|
20
|
+
var _api = require("@webiny/api");
|
21
|
+
|
22
|
+
var _checkBasePermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions"));
|
23
|
+
|
24
|
+
var _checkOwnPermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkOwnPermissions"));
|
25
|
+
|
26
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
27
|
+
|
28
|
+
var _types = require("../../types");
|
29
|
+
|
30
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
31
|
+
|
32
|
+
/**
|
33
|
+
* Package mdbid does not have types.
|
34
|
+
*/
|
35
|
+
// @ts-ignore
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Package @commodo/fields does not have types.
|
39
|
+
*/
|
40
|
+
// @ts-ignore
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Package commodo-fields-object does not have types.
|
44
|
+
*/
|
45
|
+
// @ts-ignore
|
46
|
+
const validStatus = `${_types.ImportExportTaskStatus.PENDING}:${_types.ImportExportTaskStatus.PROCESSING}:${_types.ImportExportTaskStatus.COMPLETED}:${_types.ImportExportTaskStatus.FAILED}`;
|
47
|
+
const CreateDataModel = (0, _fields.withFields)({
|
48
|
+
status: (0, _fields.string)({
|
49
|
+
validation: _validation.validation.create(`required,in:${validStatus}`)
|
50
|
+
}),
|
51
|
+
data: (0, _commodoFieldsObject.object)(),
|
52
|
+
input: (0, _commodoFieldsObject.object)(),
|
53
|
+
stats: (0, _commodoFieldsObject.object)(),
|
54
|
+
error: (0, _commodoFieldsObject.object)()
|
55
|
+
})();
|
56
|
+
const UpdateDataModel = (0, _fields.withFields)({
|
57
|
+
status: (0, _fields.string)({
|
58
|
+
validation: _validation.validation.create(`in:${validStatus}`)
|
59
|
+
}),
|
60
|
+
data: (0, _commodoFieldsObject.object)(),
|
61
|
+
input: (0, _commodoFieldsObject.object)(),
|
62
|
+
stats: (0, _commodoFieldsObject.object)(),
|
63
|
+
error: (0, _commodoFieldsObject.object)()
|
64
|
+
})();
|
65
|
+
const PERMISSION_NAME = "pb.page";
|
66
|
+
|
67
|
+
var _default = ({
|
68
|
+
storageOperations
|
69
|
+
}) => new _api.ContextPlugin(async context => {
|
70
|
+
/**
|
71
|
+
* If pageBuilder is not defined on the context, do not continue, but log it.
|
72
|
+
*/
|
73
|
+
if (!context.pageBuilder) {
|
74
|
+
console.log("Missing pageBuilder on context. Skipping ImportExportTasks crud.");
|
75
|
+
return;
|
76
|
+
}
|
77
|
+
|
78
|
+
const getLocale = () => {
|
79
|
+
const locale = context.i18n.getContentLocale();
|
80
|
+
|
81
|
+
if (!locale) {
|
82
|
+
throw new _error.default("Missing content locale in importExportTasks.crud.ts", "LOCALE_ERROR");
|
83
|
+
}
|
84
|
+
|
85
|
+
return locale;
|
86
|
+
}; // Modify context
|
87
|
+
|
88
|
+
|
89
|
+
context.pageBuilder.importExportTask = {
|
90
|
+
storageOperations,
|
91
|
+
|
92
|
+
async getTask(id) {
|
93
|
+
const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
94
|
+
rwd: "r"
|
95
|
+
});
|
96
|
+
const tenant = context.tenancy.getCurrentTenant();
|
97
|
+
const locale = getLocale();
|
98
|
+
const params = {
|
99
|
+
where: {
|
100
|
+
tenant: tenant.id,
|
101
|
+
locale: locale.code,
|
102
|
+
id
|
103
|
+
}
|
104
|
+
};
|
105
|
+
let importExportTask = null;
|
106
|
+
|
107
|
+
try {
|
108
|
+
importExportTask = await storageOperations.getTask(params);
|
109
|
+
|
110
|
+
if (!importExportTask) {
|
111
|
+
return null;
|
112
|
+
}
|
113
|
+
} catch (ex) {
|
114
|
+
throw new _error.default(ex.message || "Could not get importExportTask by id.", ex.code || "GET_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
115
|
+
params
|
116
|
+
}));
|
117
|
+
}
|
118
|
+
|
119
|
+
const identity = context.security.getIdentity();
|
120
|
+
(0, _checkOwnPermissions.default)(identity, permission, importExportTask);
|
121
|
+
return importExportTask;
|
122
|
+
},
|
123
|
+
|
124
|
+
async listTasks(params) {
|
125
|
+
const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
126
|
+
rwd: "r"
|
127
|
+
});
|
128
|
+
const tenant = context.tenancy.getCurrentTenant();
|
129
|
+
const locale = getLocale();
|
130
|
+
const {
|
131
|
+
sort,
|
132
|
+
limit
|
133
|
+
} = params || {};
|
134
|
+
const listParams = {
|
135
|
+
where: {
|
136
|
+
tenant: tenant.id,
|
137
|
+
locale: locale.code
|
138
|
+
},
|
139
|
+
sort: Array.isArray(sort) && sort.length > 0 ? sort : ["createdOn_ASC"],
|
140
|
+
limit: limit
|
141
|
+
}; // If user can only manage own records, let's add that to the listing.
|
142
|
+
|
143
|
+
if (permission.own) {
|
144
|
+
const identity = context.security.getIdentity();
|
145
|
+
listParams.where.createdBy = identity.id;
|
146
|
+
}
|
147
|
+
|
148
|
+
try {
|
149
|
+
const [items] = await storageOperations.listTasks(listParams);
|
150
|
+
return items;
|
151
|
+
} catch (ex) {
|
152
|
+
throw new _error.default(ex.message || "Could not list all importExportTask.", ex.code || "LIST_ELEMENTS_ERROR", {
|
153
|
+
params
|
154
|
+
});
|
155
|
+
}
|
156
|
+
},
|
157
|
+
|
158
|
+
async createTask(input) {
|
159
|
+
await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
160
|
+
rwd: "w"
|
161
|
+
});
|
162
|
+
const createDataModel = new CreateDataModel().populate(input);
|
163
|
+
await createDataModel.validate();
|
164
|
+
const id = (0, _mdbid.default)();
|
165
|
+
const identity = context.security.getIdentity();
|
166
|
+
const data = await createDataModel.toJSON();
|
167
|
+
const importExportTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
168
|
+
tenant: context.tenancy.getCurrentTenant().id,
|
169
|
+
locale: getLocale().code,
|
170
|
+
id,
|
171
|
+
createdOn: new Date().toISOString(),
|
172
|
+
createdBy: {
|
173
|
+
id: identity.id,
|
174
|
+
type: identity.type,
|
175
|
+
displayName: identity.displayName
|
176
|
+
}
|
177
|
+
});
|
178
|
+
|
179
|
+
try {
|
180
|
+
return await storageOperations.createTask({
|
181
|
+
input: data,
|
182
|
+
task: importExportTask
|
183
|
+
});
|
184
|
+
} catch (ex) {
|
185
|
+
throw new _error.default(ex.message || "Could not create importExportTask.", ex.code || "CREATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
186
|
+
importExportTask
|
187
|
+
}));
|
188
|
+
}
|
189
|
+
},
|
190
|
+
|
191
|
+
async updateTask(id, input) {
|
192
|
+
const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
193
|
+
rwd: "w"
|
194
|
+
});
|
195
|
+
const original = await context.pageBuilder.importExportTask.getTask(id);
|
196
|
+
|
197
|
+
if (!original) {
|
198
|
+
throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
|
199
|
+
}
|
200
|
+
|
201
|
+
const identity = context.security.getIdentity();
|
202
|
+
(0, _checkOwnPermissions.default)(identity, permission, original);
|
203
|
+
const updateDataModel = new UpdateDataModel().populate(input);
|
204
|
+
await updateDataModel.validate();
|
205
|
+
const data = await updateDataModel.toJSON({
|
206
|
+
onlyDirty: true
|
207
|
+
});
|
208
|
+
const importExportTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
|
209
|
+
|
210
|
+
try {
|
211
|
+
return await storageOperations.updateTask({
|
212
|
+
input: data,
|
213
|
+
original,
|
214
|
+
task: importExportTask
|
215
|
+
});
|
216
|
+
} catch (ex) {
|
217
|
+
throw new _error.default(ex.message || "Could not update importExportTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
218
|
+
original,
|
219
|
+
importExportTask
|
220
|
+
}));
|
221
|
+
}
|
222
|
+
},
|
223
|
+
|
224
|
+
async deleteTask(id) {
|
225
|
+
const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
226
|
+
rwd: "d"
|
227
|
+
});
|
228
|
+
const importExportTask = await context.pageBuilder.importExportTask.getTask(id);
|
229
|
+
|
230
|
+
if (!importExportTask) {
|
231
|
+
throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
|
232
|
+
}
|
233
|
+
|
234
|
+
const identity = context.security.getIdentity();
|
235
|
+
(0, _checkOwnPermissions.default)(identity, permission, importExportTask);
|
236
|
+
|
237
|
+
try {
|
238
|
+
return await storageOperations.deleteTask({
|
239
|
+
task: importExportTask
|
240
|
+
});
|
241
|
+
} catch (ex) {
|
242
|
+
throw new _error.default(ex.message || "Could not delete importExportTask.", ex.code || "DELETE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
243
|
+
importExportTask
|
244
|
+
}));
|
245
|
+
}
|
246
|
+
},
|
247
|
+
|
248
|
+
async updateStats(id, input) {
|
249
|
+
const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
250
|
+
rwd: "w"
|
251
|
+
});
|
252
|
+
const original = await context.pageBuilder.importExportTask.getTask(id);
|
253
|
+
|
254
|
+
if (!original) {
|
255
|
+
throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
|
256
|
+
}
|
257
|
+
|
258
|
+
const identity = context.security.getIdentity();
|
259
|
+
(0, _checkOwnPermissions.default)(identity, permission, original);
|
260
|
+
|
261
|
+
try {
|
262
|
+
return await storageOperations.updateTaskStats({
|
263
|
+
input,
|
264
|
+
original
|
265
|
+
});
|
266
|
+
} catch (ex) {
|
267
|
+
throw new _error.default(ex.message || "Could not update importExportTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
268
|
+
original
|
269
|
+
}));
|
270
|
+
}
|
271
|
+
},
|
272
|
+
|
273
|
+
async createSubTask(parent, id, input) {
|
274
|
+
await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
275
|
+
rwd: "w"
|
276
|
+
});
|
277
|
+
const createDataModel = new CreateDataModel().populate(input);
|
278
|
+
await createDataModel.validate();
|
279
|
+
const identity = context.security.getIdentity();
|
280
|
+
const data = await createDataModel.toJSON();
|
281
|
+
const importExportSubTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
282
|
+
tenant: context.tenancy.getCurrentTenant().id,
|
283
|
+
locale: getLocale().code,
|
284
|
+
id: id,
|
285
|
+
parent: parent,
|
286
|
+
createdOn: new Date().toISOString(),
|
287
|
+
createdBy: {
|
288
|
+
id: identity.id,
|
289
|
+
type: identity.type,
|
290
|
+
displayName: identity.displayName
|
291
|
+
}
|
292
|
+
});
|
293
|
+
|
294
|
+
try {
|
295
|
+
return await storageOperations.createSubTask({
|
296
|
+
input: data,
|
297
|
+
subTask: importExportSubTask
|
298
|
+
});
|
299
|
+
} catch (ex) {
|
300
|
+
throw new _error.default(ex.message || "Could not create importExportSubTask.", ex.code || "CREATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
301
|
+
importExportSubTask
|
302
|
+
}));
|
303
|
+
}
|
304
|
+
},
|
305
|
+
|
306
|
+
async updateSubTask(parent, subTaskId, input) {
|
307
|
+
const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
308
|
+
rwd: "w"
|
309
|
+
});
|
310
|
+
const original = await context.pageBuilder.importExportTask.getSubTask(parent, subTaskId);
|
311
|
+
|
312
|
+
if (!original) {
|
313
|
+
throw new _handlerGraphql.NotFoundError(`ImportExportTask parent: "${parent}" and id: "${subTaskId}" not found.`);
|
314
|
+
}
|
315
|
+
|
316
|
+
const identity = context.security.getIdentity();
|
317
|
+
(0, _checkOwnPermissions.default)(identity, permission, original);
|
318
|
+
const updateDataModel = new UpdateDataModel().populate(input);
|
319
|
+
await updateDataModel.validate();
|
320
|
+
const data = await updateDataModel.toJSON({
|
321
|
+
onlyDirty: true
|
322
|
+
}); // TODO: Merge recursively
|
323
|
+
|
324
|
+
const importExportSubTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
|
325
|
+
|
326
|
+
try {
|
327
|
+
return await storageOperations.updateSubTask({
|
328
|
+
input: data,
|
329
|
+
original,
|
330
|
+
subTask: importExportSubTask
|
331
|
+
});
|
332
|
+
} catch (ex) {
|
333
|
+
throw new _error.default(ex.message || "Could not update importExportSubTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
334
|
+
importExportSubTask,
|
335
|
+
original
|
336
|
+
}));
|
337
|
+
}
|
338
|
+
},
|
339
|
+
|
340
|
+
async getSubTask(parent, subTaskId) {
|
341
|
+
const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
342
|
+
rwd: "r"
|
343
|
+
});
|
344
|
+
const tenant = context.tenancy.getCurrentTenant();
|
345
|
+
const locale = getLocale();
|
346
|
+
const params = {
|
347
|
+
where: {
|
348
|
+
tenant: tenant.id,
|
349
|
+
locale: locale.code,
|
350
|
+
id: subTaskId,
|
351
|
+
parent: parent
|
352
|
+
}
|
353
|
+
};
|
354
|
+
let importExportSubTask = null;
|
355
|
+
|
356
|
+
try {
|
357
|
+
importExportSubTask = await storageOperations.getSubTask(params);
|
358
|
+
|
359
|
+
if (!importExportSubTask) {
|
360
|
+
return null;
|
361
|
+
}
|
362
|
+
} catch (ex) {
|
363
|
+
throw new _error.default(ex.message || "Could not get importExportSubTask by id.", ex.code || "GET_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
364
|
+
params
|
365
|
+
}));
|
366
|
+
}
|
367
|
+
|
368
|
+
const identity = context.security.getIdentity();
|
369
|
+
(0, _checkOwnPermissions.default)(identity, permission, importExportSubTask);
|
370
|
+
return importExportSubTask;
|
371
|
+
},
|
372
|
+
|
373
|
+
async listSubTasks(parent, status, limit) {
|
374
|
+
const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
375
|
+
rwd: "r"
|
376
|
+
});
|
377
|
+
const tenant = context.tenancy.getCurrentTenant();
|
378
|
+
const locale = getLocale();
|
379
|
+
const listParams = {
|
380
|
+
where: {
|
381
|
+
tenant: tenant.id,
|
382
|
+
locale: locale.code,
|
383
|
+
parent: parent,
|
384
|
+
status
|
385
|
+
},
|
386
|
+
limit
|
387
|
+
}; // If user can only manage own records, let's add that to the listing.
|
388
|
+
|
389
|
+
if (permission.own) {
|
390
|
+
const identity = context.security.getIdentity();
|
391
|
+
listParams.where.createdBy = identity.id;
|
392
|
+
}
|
393
|
+
|
394
|
+
try {
|
395
|
+
const [items] = await storageOperations.listSubTasks(listParams);
|
396
|
+
return items;
|
397
|
+
} catch (ex) {
|
398
|
+
throw new _error.default(ex.message || "Could not list all importExportSubTask.", ex.code || "LIST_IMPORT_EXPORT_TASK_ERROR", {
|
399
|
+
params: {
|
400
|
+
parent,
|
401
|
+
status,
|
402
|
+
limit
|
403
|
+
}
|
404
|
+
});
|
405
|
+
}
|
406
|
+
}
|
407
|
+
|
408
|
+
};
|
409
|
+
});
|
410
|
+
|
411
|
+
exports.default = _default;
|
@@ -0,0 +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":["/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\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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"}
|
@@ -0,0 +1,172 @@
|
|
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.default = void 0;
|
9
|
+
|
10
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
11
|
+
|
12
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
13
|
+
|
14
|
+
var _api = require("@webiny/api");
|
15
|
+
|
16
|
+
var _checkBasePermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions"));
|
17
|
+
|
18
|
+
var _types = require("../../types");
|
19
|
+
|
20
|
+
var _client = require("../../client");
|
21
|
+
|
22
|
+
var _utils = require("../../import/utils");
|
23
|
+
|
24
|
+
var _utils2 = require("../../export/utils");
|
25
|
+
|
26
|
+
var _utils3 = require("@webiny/utils");
|
27
|
+
|
28
|
+
const PERMISSION_NAME = "pb.page";
|
29
|
+
const EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
|
30
|
+
const IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
|
31
|
+
|
32
|
+
var _default = new _api.ContextPlugin(context => {
|
33
|
+
const importExportCrud = {
|
34
|
+
async importPages({
|
35
|
+
category: categorySlug,
|
36
|
+
zipFileUrl
|
37
|
+
}) {
|
38
|
+
await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
39
|
+
rwd: "w"
|
40
|
+
}); // Bail out early if category not found
|
41
|
+
|
42
|
+
const category = await context.pageBuilder.getCategory(categorySlug);
|
43
|
+
|
44
|
+
if (!category) {
|
45
|
+
throw new _handlerGraphql.NotFoundError(`Category with slug "${categorySlug}" not found.`);
|
46
|
+
} // Create a task for import page
|
47
|
+
|
48
|
+
|
49
|
+
const task = await context.pageBuilder.importExportTask.createTask({
|
50
|
+
status: _types.ImportExportTaskStatus.PENDING,
|
51
|
+
input: {
|
52
|
+
category: categorySlug,
|
53
|
+
zipFileUrl
|
54
|
+
}
|
55
|
+
});
|
56
|
+
/**
|
57
|
+
* Import Pages
|
58
|
+
* ImportPages
|
59
|
+
* importPages
|
60
|
+
*/
|
61
|
+
|
62
|
+
await (0, _client.invokeHandlerClient)({
|
63
|
+
context,
|
64
|
+
name: IMPORT_PAGES_CREATE_HANDLER,
|
65
|
+
payload: {
|
66
|
+
category: categorySlug,
|
67
|
+
zipFileUrl,
|
68
|
+
task,
|
69
|
+
type: "page",
|
70
|
+
identity: context.security.getIdentity()
|
71
|
+
},
|
72
|
+
description: "Import Pages - create"
|
73
|
+
});
|
74
|
+
return {
|
75
|
+
task
|
76
|
+
};
|
77
|
+
},
|
78
|
+
|
79
|
+
async exportPages({
|
80
|
+
ids: initialPageIds,
|
81
|
+
revisionType,
|
82
|
+
where,
|
83
|
+
sort,
|
84
|
+
search
|
85
|
+
}) {
|
86
|
+
await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
|
87
|
+
rwd: "w"
|
88
|
+
});
|
89
|
+
let pageIds = initialPageIds || []; // If no ids are provided then it means we want to export all pages
|
90
|
+
|
91
|
+
if (!initialPageIds || Array.isArray(initialPageIds) && initialPageIds.length === 0) {
|
92
|
+
pageIds = [];
|
93
|
+
let pages = [];
|
94
|
+
let meta = {
|
95
|
+
hasMoreItems: true,
|
96
|
+
cursor: null,
|
97
|
+
totalCount: 0
|
98
|
+
}; // Paginate pages
|
99
|
+
|
100
|
+
while (meta.hasMoreItems) {
|
101
|
+
[pages, meta] = await context.pageBuilder.listLatestPages({
|
102
|
+
after: meta.cursor,
|
103
|
+
where: where,
|
104
|
+
sort: sort,
|
105
|
+
search: search
|
106
|
+
}); // Save page ids
|
107
|
+
|
108
|
+
pages.forEach(page => pageIds.push(page.id));
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
if (pageIds.length === 0) {
|
113
|
+
throw new _error.default("Cannot export pages - no pages found for provided inputs.", "EMPTY_EXPORT_NO_PAGES_FOUND");
|
114
|
+
} // Create the main task for page export.
|
115
|
+
|
116
|
+
|
117
|
+
const task = await context.pageBuilder.importExportTask.createTask({
|
118
|
+
status: _types.ImportExportTaskStatus.PENDING
|
119
|
+
});
|
120
|
+
const exportPagesDataKey = `${_utils2.EXPORT_PAGES_FOLDER_KEY}/${task.id}`; // For each page create a sub task and invoke the process handler.
|
121
|
+
|
122
|
+
for (let i = 0; i < pageIds.length; i++) {
|
123
|
+
const pageId = pageIds[i]; // Create sub task.
|
124
|
+
|
125
|
+
await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils3.zeroPad)(i + 1, 5), {
|
126
|
+
status: _types.ImportExportTaskStatus.PENDING,
|
127
|
+
input: {
|
128
|
+
pageId,
|
129
|
+
exportPagesDataKey,
|
130
|
+
revisionType
|
131
|
+
}
|
132
|
+
});
|
133
|
+
} // Update main task status.
|
134
|
+
|
135
|
+
|
136
|
+
await context.pageBuilder.importExportTask.updateTask(task.id, {
|
137
|
+
status: _types.ImportExportTaskStatus.PROCESSING,
|
138
|
+
stats: (0, _utils.initialStats)(pageIds.length),
|
139
|
+
input: {
|
140
|
+
exportPagesDataKey,
|
141
|
+
revisionType
|
142
|
+
}
|
143
|
+
});
|
144
|
+
/**
|
145
|
+
* Export Pages
|
146
|
+
* ExportPages
|
147
|
+
* exportPages
|
148
|
+
*/
|
149
|
+
// Invoke handler.
|
150
|
+
|
151
|
+
await (0, _client.invokeHandlerClient)({
|
152
|
+
context,
|
153
|
+
name: EXPORT_PAGES_PROCESS_HANDLER,
|
154
|
+
payload: {
|
155
|
+
taskId: task.id,
|
156
|
+
subTaskIndex: 1,
|
157
|
+
type: "page",
|
158
|
+
identity: context.security.getIdentity()
|
159
|
+
},
|
160
|
+
description: "Export pages - process"
|
161
|
+
});
|
162
|
+
return {
|
163
|
+
task
|
164
|
+
};
|
165
|
+
}
|
166
|
+
|
167
|
+
}; // Modify context
|
168
|
+
|
169
|
+
context.pageBuilder.pages = importExportCrud;
|
170
|
+
});
|
171
|
+
|
172
|
+
exports.default = _default;
|
@@ -0,0 +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","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","meta","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 }) {\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 },\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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"}
|