@webiny/api-page-builder-import-export 0.0.0-unstable.990c3ab1b6 → 0.0.0-unstable.d4f203fa97

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.
Files changed (39) hide show
  1. package/client.js +6 -2
  2. package/client.js.map +1 -1
  3. package/exportPages/combine/index.js +19 -11
  4. package/exportPages/combine/index.js.map +1 -1
  5. package/exportPages/process/index.js +35 -19
  6. package/exportPages/process/index.js.map +1 -1
  7. package/exportPages/s3Stream.js +20 -1
  8. package/exportPages/s3Stream.js.map +1 -1
  9. package/exportPages/utils.js +31 -18
  10. package/exportPages/utils.js.map +1 -1
  11. package/exportPages/zipper.js +41 -29
  12. package/exportPages/zipper.js.map +1 -1
  13. package/graphql/crud/pageImportExportTasks.crud.js +57 -9
  14. package/graphql/crud/pageImportExportTasks.crud.js.map +1 -1
  15. package/graphql/crud/pages.crud.js +39 -21
  16. package/graphql/crud/pages.crud.js.map +1 -1
  17. package/graphql/crud.js +5 -0
  18. package/graphql/crud.js.map +1 -1
  19. package/graphql/graphql/pageImportExportTasks.gql.js +6 -1
  20. package/graphql/graphql/pageImportExportTasks.gql.js.map +1 -1
  21. package/graphql/graphql/pages.gql.js +6 -1
  22. package/graphql/graphql/pages.gql.js.map +1 -1
  23. package/graphql/graphql/utils/resolve.js +3 -0
  24. package/graphql/graphql/utils/resolve.js.map +1 -1
  25. package/graphql/graphql.js +4 -0
  26. package/graphql/graphql.js.map +1 -1
  27. package/graphql/index.js +5 -0
  28. package/graphql/index.js.map +1 -1
  29. package/importPages/create/index.js +20 -9
  30. package/importPages/create/index.js.map +1 -1
  31. package/importPages/process/index.js +29 -24
  32. package/importPages/process/index.js.map +1 -1
  33. package/importPages/utils.js +126 -44
  34. package/importPages/utils.js.map +1 -1
  35. package/mockSecurity.js +2 -0
  36. package/mockSecurity.js.map +1 -1
  37. package/package.json +23 -23
  38. package/types.js +5 -0
  39. package/types.js.map +1 -1
@@ -4,12 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _types = require("../../types");
9
+
8
10
  var _utils = require("../utils");
11
+
9
12
  var _client = require("../../client");
13
+
10
14
  var _mockSecurity = require("../../mockSecurity");
15
+
11
16
  var _utils2 = require("@webiny/utils");
17
+
12
18
  var _handlerAws = require("@webiny/handler-aws");
19
+
13
20
  /**
14
21
  * Handles the import page workflow.
15
22
  */
@@ -28,8 +35,10 @@ var _default = configuration => {
28
35
  zipFileUrl,
29
36
  identity
30
37
  } = payload;
38
+
31
39
  try {
32
40
  log("RUNNING Import Pages Create");
41
+
33
42
  if (!zipFileUrl) {
34
43
  return {
35
44
  data: null,
@@ -38,14 +47,14 @@ var _default = configuration => {
38
47
  }
39
48
  };
40
49
  }
41
- (0, _mockSecurity.mockSecurity)(identity, context);
42
- // Step 1: Read the zip file
43
- const pageImportDataList = await (0, _utils.readExtractAndUploadZipFileContents)(zipFileUrl);
44
50
 
45
- // For each page create a subtask and invoke the process handler
51
+ (0, _mockSecurity.mockSecurity)(identity, context); // Step 1: Read the zip file
52
+
53
+ const pageImportDataList = await (0, _utils.readExtractAndUploadZipFileContents)(zipFileUrl); // For each page create a subtask and invoke the process handler
54
+
46
55
  for (let i = 0; i < pageImportDataList.length; i++) {
47
- const pagesDirMap = pageImportDataList[i];
48
- // Create sub task
56
+ const pagesDirMap = pageImportDataList[i]; // Create sub task
57
+
49
58
  const subtask = await pageBuilder.pageImportExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
50
59
  status: _types.PageImportExportTaskStatus.PENDING,
51
60
  data: {
@@ -58,8 +67,9 @@ var _default = configuration => {
58
67
  }
59
68
  });
60
69
  log(`Added SUB_TASK "${subtask.id}" to queue.`);
61
- }
62
- // Update main task status
70
+ } // Update main task status
71
+
72
+
63
73
  await pageBuilder.pageImportExportTask.updateTask(task.id, {
64
74
  status: _types.PageImportExportTaskStatus.PROCESSING,
65
75
  stats: (0, _utils.initialStats)(pageImportDataList.length)
@@ -77,7 +87,6 @@ var _default = configuration => {
77
87
  });
78
88
  } catch (e) {
79
89
  log("[IMPORT_PAGES_CREATE] Error => ", e);
80
-
81
90
  /**
82
91
  * In case of error, we'll update the task status to "failed",
83
92
  * so that, client can show notify the user appropriately.
@@ -98,10 +107,12 @@ var _default = configuration => {
98
107
  }
99
108
  };
100
109
  }
110
+
101
111
  return {
102
112
  data: "",
103
113
  error: null
104
114
  };
105
115
  });
106
116
  };
117
+
107
118
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["configuration","createRawEventHandler","payload","context","log","console","pageBuilder","task","category","zipFileUrl","identity","data","error","message","mockSecurity","pageImportDataList","readExtractAndUploadZipFileContents","i","length","pagesDirMap","subtask","pageImportExportTask","createSubTask","id","zeroPad","status","PageImportExportTaskStatus","PENDING","pageKey","key","input","fileUploadsData","updateTask","PROCESSING","stats","initialStats","invokeHandlerClient","name","handlers","process","taskId","subTaskIndex","security","getIdentity","description","e","FAILED","code"],"sources":["index.ts"],"sourcesContent":["import {\n PageImportExportTask,\n PageImportExportTaskStatus,\n PbPageImportExportContext\n} from \"~/types\";\nimport { initialStats, readExtractAndUploadZipFileContents } from \"~/importPages/utils\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as ProcessPayload } from \"../process\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { createRawEventHandler } from \"@webiny/handler-aws\";\n\ninterface Configuration {\n handlers: {\n process: string;\n };\n}\n\nexport interface Payload {\n category: string;\n zipFileUrl: string;\n task: PageImportExportTask;\n identity: SecurityIdentity;\n}\nexport interface Response {\n data: string | null;\n error: Partial<Error> | null;\n}\n\n/**\n * Handles the import page workflow.\n */\nexport default (configuration: Configuration) => {\n return createRawEventHandler<Payload, PbPageImportExportContext, Response>(\n async ({ payload, context }) => {\n const log = console.log;\n\n const { pageBuilder } = context;\n const { task, category, zipFileUrl, identity } = payload;\n try {\n log(\"RUNNING Import Pages Create\");\n if (!zipFileUrl) {\n return {\n data: null,\n error: {\n message: `Missing \"zipFileUrl\"!`\n }\n };\n }\n mockSecurity(identity, context);\n // Step 1: Read the zip file\n const pageImportDataList = await readExtractAndUploadZipFileContents(zipFileUrl);\n\n // For each page create a subtask and invoke the process handler\n for (let i = 0; i < pageImportDataList.length; i++) {\n const pagesDirMap = pageImportDataList[i];\n // Create sub task\n const subtask = await pageBuilder.pageImportExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: PageImportExportTaskStatus.PENDING,\n data: {\n pageKey: pagesDirMap.key,\n category,\n zipFileUrl,\n input: {\n fileUploadsData: pagesDirMap\n }\n }\n }\n );\n log(`Added SUB_TASK \"${subtask.id}\" to queue.`);\n }\n // Update main task status\n await pageBuilder.pageImportExportTask.updateTask(task.id, {\n status: PageImportExportTaskStatus.PROCESSING,\n stats: initialStats(pageImportDataList.length)\n });\n\n await invokeHandlerClient<ProcessPayload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId: task.id,\n // Execute \"Process\" for the first sub task.\n subTaskIndex: 1,\n identity: context.security.getIdentity()\n },\n description: \"Import pages - process - first\"\n });\n } catch (e) {\n log(\"[IMPORT_PAGES_CREATE] Error => \", e);\n\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n\n await pageBuilder.pageImportExportTask.updateTask(task.id, {\n status: PageImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: e.code || \"EXPORT_FAILED\"\n }\n });\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n }\n\n return {\n data: \"\",\n error: null\n };\n }\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["configuration","createRawEventHandler","payload","context","log","console","pageBuilder","task","category","zipFileUrl","identity","data","error","message","mockSecurity","pageImportDataList","readExtractAndUploadZipFileContents","i","length","pagesDirMap","subtask","pageImportExportTask","createSubTask","id","zeroPad","status","PageImportExportTaskStatus","PENDING","pageKey","key","input","fileUploadsData","updateTask","PROCESSING","stats","initialStats","invokeHandlerClient","name","handlers","process","taskId","subTaskIndex","security","getIdentity","description","e","FAILED","code"],"sources":["index.ts"],"sourcesContent":["import {\n PageImportExportTask,\n PageImportExportTaskStatus,\n PbPageImportExportContext\n} from \"~/types\";\nimport { initialStats, readExtractAndUploadZipFileContents } from \"~/importPages/utils\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as ProcessPayload } from \"../process\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { createRawEventHandler } from \"@webiny/handler-aws\";\n\ninterface Configuration {\n handlers: {\n process: string;\n };\n}\n\nexport interface Payload {\n category: string;\n zipFileUrl: string;\n task: PageImportExportTask;\n identity: SecurityIdentity;\n}\nexport interface Response {\n data: string | null;\n error: Partial<Error> | null;\n}\n\n/**\n * Handles the import page workflow.\n */\nexport default (configuration: Configuration) => {\n return createRawEventHandler<Payload, PbPageImportExportContext, Response>(\n async ({ payload, context }) => {\n const log = console.log;\n\n const { pageBuilder } = context;\n const { task, category, zipFileUrl, identity } = payload;\n try {\n log(\"RUNNING Import Pages Create\");\n if (!zipFileUrl) {\n return {\n data: null,\n error: {\n message: `Missing \"zipFileUrl\"!`\n }\n };\n }\n mockSecurity(identity, context);\n // Step 1: Read the zip file\n const pageImportDataList = await readExtractAndUploadZipFileContents(zipFileUrl);\n\n // For each page create a subtask and invoke the process handler\n for (let i = 0; i < pageImportDataList.length; i++) {\n const pagesDirMap = pageImportDataList[i];\n // Create sub task\n const subtask = await pageBuilder.pageImportExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: PageImportExportTaskStatus.PENDING,\n data: {\n pageKey: pagesDirMap.key,\n category,\n zipFileUrl,\n input: {\n fileUploadsData: pagesDirMap\n }\n }\n }\n );\n log(`Added SUB_TASK \"${subtask.id}\" to queue.`);\n }\n // Update main task status\n await pageBuilder.pageImportExportTask.updateTask(task.id, {\n status: PageImportExportTaskStatus.PROCESSING,\n stats: initialStats(pageImportDataList.length)\n });\n\n await invokeHandlerClient<ProcessPayload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId: task.id,\n // Execute \"Process\" for the first sub task.\n subTaskIndex: 1,\n identity: context.security.getIdentity()\n },\n description: \"Import pages - process - first\"\n });\n } catch (e) {\n log(\"[IMPORT_PAGES_CREATE] Error => \", e);\n\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n\n await pageBuilder.pageImportExportTask.updateTask(task.id, {\n status: PageImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: e.code || \"EXPORT_FAILED\"\n }\n });\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n }\n\n return {\n data: \"\",\n error: null\n };\n }\n );\n};\n"],"mappings":"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"}
@@ -4,12 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _types = require("../../types");
9
+
8
10
  var _utils = require("../utils");
11
+
9
12
  var _client = require("../../client");
13
+
10
14
  var _mockSecurity = require("../../mockSecurity");
15
+
11
16
  var _utils2 = require("@webiny/utils");
17
+
12
18
  var _handlerAws = require("@webiny/handler-aws");
19
+
13
20
  var _default = configuration => {
14
21
  return (0, _handlerAws.createRawEventHandler)(async ({
15
22
  payload,
@@ -27,22 +34,22 @@ var _default = configuration => {
27
34
  taskId,
28
35
  subTaskIndex,
29
36
  identity
30
- } = payload;
31
- // Disable authorization; this is necessary because we call Page Builder CRUD methods which include authorization checks
37
+ } = payload; // Disable authorization; this is necessary because we call Page Builder CRUD methods which include authorization checks
32
38
  // and this Lambda is invoked internally, without credentials.
39
+
33
40
  (0, _mockSecurity.mockSecurity)(identity, context);
41
+
34
42
  try {
35
43
  /*
36
44
  * Note: We're not going to DB for getting next sub-task to process,
37
45
  * because the data might be out of sync due to GSI eventual consistency.
38
46
  */
39
-
40
47
  subTask = await pageBuilder.pageImportExportTask.getSubTask(taskId, (0, _utils2.zeroPad)(subTaskIndex, 5));
41
-
42
48
  /**
43
49
  * Base condition!!
44
50
  * Bail out early, if task not found or task's status is not "pending".
45
51
  */
52
+
46
53
  if (!subTask || subTask.status !== _types.PageImportExportTaskStatus.PENDING) {
47
54
  noPendingTask = true;
48
55
  return {
@@ -52,6 +59,7 @@ var _default = configuration => {
52
59
  } else {
53
60
  noPendingTask = false;
54
61
  }
62
+
55
63
  prevStatusOfSubTask = subTask.status;
56
64
  log(`Fetched sub task => ${subTask.id}`);
57
65
  const {
@@ -63,41 +71,35 @@ var _default = configuration => {
63
71
  const {
64
72
  fileUploadsData
65
73
  } = input;
66
- log(`Processing page key "${pageKey}"`);
74
+ log(`Processing page key "${pageKey}"`); // Mark task status as PROCESSING
67
75
 
68
- // Mark task status as PROCESSING
69
76
  subTask = await pageBuilder.pageImportExportTask.updateSubTask(taskId, subTask.id, {
70
77
  status: _types.PageImportExportTaskStatus.PROCESSING
71
- });
72
- // Update stats in main task
78
+ }); // Update stats in main task
79
+
73
80
  await pageBuilder.pageImportExportTask.updateStats(taskId, {
74
81
  prevStatus: prevStatusOfSubTask,
75
82
  nextStatus: _types.PageImportExportTaskStatus.PROCESSING
76
83
  });
77
- prevStatusOfSubTask = subTask.status;
84
+ prevStatusOfSubTask = subTask.status; // Real job
78
85
 
79
- // Real job
80
86
  const page = await (0, _utils.importPage)({
81
87
  context,
82
88
  pageKey,
83
89
  key: zipFileKey,
84
90
  fileUploadsData
85
- });
91
+ }); // Create a page
86
92
 
87
- // Create a page
88
- let pbPage = await context.pageBuilder.createPage(category);
93
+ let pbPage = await context.pageBuilder.createPage(category); // Update page with data
89
94
 
90
- // Update page with data
91
95
  pbPage = await context.pageBuilder.updatePage(pbPage.id, {
92
96
  content: page.content,
93
97
  title: page.title,
94
98
  path: page.path,
95
99
  settings: page.settings
96
- });
97
-
98
- // TODO: Publish page
99
-
100
+ }); // TODO: Publish page
100
101
  // Update task record in DB
102
+
101
103
  subTask = await pageBuilder.pageImportExportTask.updateSubTask(taskId, subTask.id, {
102
104
  status: _types.PageImportExportTaskStatus.COMPLETED,
103
105
  data: {
@@ -109,8 +111,8 @@ var _default = configuration => {
109
111
  status: pbPage.status
110
112
  }
111
113
  }
112
- });
113
- // Update stats in main task
114
+ }); // Update stats in main task
115
+
114
116
  await pageBuilder.pageImportExportTask.updateStats(taskId, {
115
117
  prevStatus: prevStatusOfSubTask,
116
118
  nextStatus: _types.PageImportExportTaskStatus.COMPLETED
@@ -118,6 +120,7 @@ var _default = configuration => {
118
120
  prevStatusOfSubTask = subTask.status;
119
121
  } catch (e) {
120
122
  log("[IMPORT_PAGES_PROCESS] Error => ", e);
123
+
121
124
  if (subTask && subTask.id) {
122
125
  /**
123
126
  * In case of error, we'll update the task status to "failed",
@@ -131,15 +134,15 @@ var _default = configuration => {
131
134
  stack: e.stack,
132
135
  code: "IMPORT_FAILED"
133
136
  }
134
- });
137
+ }); // Update stats in main task
135
138
 
136
- // Update stats in main task
137
139
  await pageBuilder.pageImportExportTask.updateStats(taskId, {
138
140
  prevStatus: prevStatusOfSubTask,
139
141
  nextStatus: _types.PageImportExportTaskStatus.FAILED
140
142
  });
141
143
  prevStatusOfSubTask = subTask.status;
142
144
  }
145
+
143
146
  return {
144
147
  data: null,
145
148
  error: {
@@ -157,8 +160,8 @@ var _default = configuration => {
157
160
  }
158
161
  });
159
162
  } else {
160
- log(`Invoking PROCESS for task "${subTaskIndex + 1}"`);
161
- // We want to continue with Self invocation no matter if current page error out.
163
+ log(`Invoking PROCESS for task "${subTaskIndex + 1}"`); // We want to continue with Self invocation no matter if current page error out.
164
+
162
165
  await (0, _client.invokeHandlerClient)({
163
166
  context,
164
167
  name: configuration.handlers.process,
@@ -171,10 +174,12 @@ var _default = configuration => {
171
174
  });
172
175
  }
173
176
  }
177
+
174
178
  return {
175
179
  data: "",
176
180
  error: null
177
181
  };
178
182
  });
179
183
  };
184
+
180
185
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["configuration","createRawEventHandler","payload","context","log","console","subTask","noPendingTask","prevStatusOfSubTask","PageImportExportTaskStatus","PENDING","pageBuilder","taskId","subTaskIndex","identity","mockSecurity","pageImportExportTask","getSubTask","zeroPad","status","data","error","id","pageKey","category","zipFileKey","input","fileUploadsData","updateSubTask","PROCESSING","updateStats","prevStatus","nextStatus","page","importPage","key","pbPage","createPage","updatePage","content","title","path","settings","COMPLETED","message","version","e","FAILED","name","stack","code","updateTask","invokeHandlerClient","handlers","process","security","getIdentity","description"],"sources":["index.ts"],"sourcesContent":["import { PageImportExportTaskStatus, PbPageImportExportContext } from \"~/types\";\nimport { importPage } from \"~/importPages/utils\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { createRawEventHandler } from \"@webiny/handler-aws\";\n\ninterface Configuration {\n handlers: {\n process: string;\n };\n}\n\nexport interface Payload {\n taskId: string;\n subTaskIndex: number;\n identity: SecurityIdentity;\n}\n\nexport interface Response {\n data: string | null;\n error: Partial<Error> | null;\n}\n\nexport default (configuration: Configuration) => {\n return createRawEventHandler<Payload, PbPageImportExportContext, Response>(\n async ({ payload, context }) => {\n const log = console.log;\n let subTask;\n let noPendingTask = true;\n let prevStatusOfSubTask = PageImportExportTaskStatus.PENDING;\n\n log(\"RUNNING Import Page Queue Process\");\n const { pageBuilder } = context;\n const { taskId, subTaskIndex, identity } = payload;\n // Disable authorization; this is necessary because we call Page Builder CRUD methods which include authorization checks\n // and this Lambda is invoked internally, without credentials.\n mockSecurity(identity, context);\n\n try {\n /*\n * Note: We're not going to DB for getting next sub-task to process,\n * because the data might be out of sync due to GSI eventual consistency.\n */\n\n subTask = await pageBuilder.pageImportExportTask.getSubTask(\n taskId,\n zeroPad(subTaskIndex, 5)\n );\n\n /**\n * Base condition!!\n * Bail out early, if task not found or task's status is not \"pending\".\n */\n if (!subTask || subTask.status !== PageImportExportTaskStatus.PENDING) {\n noPendingTask = true;\n return {\n data: \"\",\n error: null\n };\n } else {\n noPendingTask = false;\n }\n prevStatusOfSubTask = subTask.status;\n\n log(`Fetched sub task => ${subTask.id}`);\n\n const { pageKey, category, zipFileKey, input } = subTask.data;\n const { fileUploadsData } = input;\n\n log(`Processing page key \"${pageKey}\"`);\n\n // Mark task status as PROCESSING\n subTask = await pageBuilder.pageImportExportTask.updateSubTask(taskId, subTask.id, {\n status: PageImportExportTaskStatus.PROCESSING\n });\n // Update stats in main task\n await pageBuilder.pageImportExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: PageImportExportTaskStatus.PROCESSING\n });\n prevStatusOfSubTask = subTask.status;\n\n // Real job\n const page = await importPage({\n context,\n pageKey,\n key: zipFileKey,\n fileUploadsData\n });\n\n // Create a page\n let pbPage = await context.pageBuilder.createPage(category);\n\n // Update page with data\n pbPage = await context.pageBuilder.updatePage(pbPage.id, {\n content: page.content,\n title: page.title,\n path: page.path,\n settings: page.settings\n });\n\n // TODO: Publish page\n\n // Update task record in DB\n subTask = await pageBuilder.pageImportExportTask.updateSubTask(taskId, subTask.id, {\n status: PageImportExportTaskStatus.COMPLETED,\n data: {\n message: \"Done\",\n page: {\n id: pbPage.id,\n title: pbPage.title,\n version: pbPage.version,\n status: pbPage.status\n }\n }\n });\n // Update stats in main task\n await pageBuilder.pageImportExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: PageImportExportTaskStatus.COMPLETED\n });\n prevStatusOfSubTask = subTask.status;\n } catch (e) {\n log(\"[IMPORT_PAGES_PROCESS] Error => \", e);\n\n if (subTask && subTask.id) {\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n subTask = await pageBuilder.pageImportExportTask.updateSubTask(\n taskId,\n subTask.id,\n {\n status: PageImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n stack: e.stack,\n code: \"IMPORT_FAILED\"\n }\n }\n );\n\n // Update stats in main task\n await pageBuilder.pageImportExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: PageImportExportTaskStatus.FAILED\n });\n prevStatusOfSubTask = subTask.status;\n }\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n } finally {\n // Base condition!\n if (noPendingTask) {\n log(`No pending sub-task for task ${taskId}`);\n\n await pageBuilder.pageImportExportTask.updateTask(taskId, {\n status: PageImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish importing pages.`\n }\n });\n } else {\n log(`Invoking PROCESS for task \"${subTaskIndex + 1}\"`);\n // We want to continue with Self invocation no matter if current page error out.\n await invokeHandlerClient<Payload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId,\n subTaskIndex: subTaskIndex + 1,\n identity: context.security.getIdentity()\n },\n description: \"Import pages - process - subtask\"\n });\n }\n }\n return {\n data: \"\",\n error: null\n };\n }\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["configuration","createRawEventHandler","payload","context","log","console","subTask","noPendingTask","prevStatusOfSubTask","PageImportExportTaskStatus","PENDING","pageBuilder","taskId","subTaskIndex","identity","mockSecurity","pageImportExportTask","getSubTask","zeroPad","status","data","error","id","pageKey","category","zipFileKey","input","fileUploadsData","updateSubTask","PROCESSING","updateStats","prevStatus","nextStatus","page","importPage","key","pbPage","createPage","updatePage","content","title","path","settings","COMPLETED","message","version","e","FAILED","name","stack","code","updateTask","invokeHandlerClient","handlers","process","security","getIdentity","description"],"sources":["index.ts"],"sourcesContent":["import { PageImportExportTaskStatus, PbPageImportExportContext } from \"~/types\";\nimport { importPage } from \"~/importPages/utils\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { createRawEventHandler } from \"@webiny/handler-aws\";\n\ninterface Configuration {\n handlers: {\n process: string;\n };\n}\n\nexport interface Payload {\n taskId: string;\n subTaskIndex: number;\n identity: SecurityIdentity;\n}\n\nexport interface Response {\n data: string | null;\n error: Partial<Error> | null;\n}\n\nexport default (configuration: Configuration) => {\n return createRawEventHandler<Payload, PbPageImportExportContext, Response>(\n async ({ payload, context }) => {\n const log = console.log;\n let subTask;\n let noPendingTask = true;\n let prevStatusOfSubTask = PageImportExportTaskStatus.PENDING;\n\n log(\"RUNNING Import Page Queue Process\");\n const { pageBuilder } = context;\n const { taskId, subTaskIndex, identity } = payload;\n // Disable authorization; this is necessary because we call Page Builder CRUD methods which include authorization checks\n // and this Lambda is invoked internally, without credentials.\n mockSecurity(identity, context);\n\n try {\n /*\n * Note: We're not going to DB for getting next sub-task to process,\n * because the data might be out of sync due to GSI eventual consistency.\n */\n\n subTask = await pageBuilder.pageImportExportTask.getSubTask(\n taskId,\n zeroPad(subTaskIndex, 5)\n );\n\n /**\n * Base condition!!\n * Bail out early, if task not found or task's status is not \"pending\".\n */\n if (!subTask || subTask.status !== PageImportExportTaskStatus.PENDING) {\n noPendingTask = true;\n return {\n data: \"\",\n error: null\n };\n } else {\n noPendingTask = false;\n }\n prevStatusOfSubTask = subTask.status;\n\n log(`Fetched sub task => ${subTask.id}`);\n\n const { pageKey, category, zipFileKey, input } = subTask.data;\n const { fileUploadsData } = input;\n\n log(`Processing page key \"${pageKey}\"`);\n\n // Mark task status as PROCESSING\n subTask = await pageBuilder.pageImportExportTask.updateSubTask(taskId, subTask.id, {\n status: PageImportExportTaskStatus.PROCESSING\n });\n // Update stats in main task\n await pageBuilder.pageImportExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: PageImportExportTaskStatus.PROCESSING\n });\n prevStatusOfSubTask = subTask.status;\n\n // Real job\n const page = await importPage({\n context,\n pageKey,\n key: zipFileKey,\n fileUploadsData\n });\n\n // Create a page\n let pbPage = await context.pageBuilder.createPage(category);\n\n // Update page with data\n pbPage = await context.pageBuilder.updatePage(pbPage.id, {\n content: page.content,\n title: page.title,\n path: page.path,\n settings: page.settings\n });\n\n // TODO: Publish page\n\n // Update task record in DB\n subTask = await pageBuilder.pageImportExportTask.updateSubTask(taskId, subTask.id, {\n status: PageImportExportTaskStatus.COMPLETED,\n data: {\n message: \"Done\",\n page: {\n id: pbPage.id,\n title: pbPage.title,\n version: pbPage.version,\n status: pbPage.status\n }\n }\n });\n // Update stats in main task\n await pageBuilder.pageImportExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: PageImportExportTaskStatus.COMPLETED\n });\n prevStatusOfSubTask = subTask.status;\n } catch (e) {\n log(\"[IMPORT_PAGES_PROCESS] Error => \", e);\n\n if (subTask && subTask.id) {\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n subTask = await pageBuilder.pageImportExportTask.updateSubTask(\n taskId,\n subTask.id,\n {\n status: PageImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n stack: e.stack,\n code: \"IMPORT_FAILED\"\n }\n }\n );\n\n // Update stats in main task\n await pageBuilder.pageImportExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: PageImportExportTaskStatus.FAILED\n });\n prevStatusOfSubTask = subTask.status;\n }\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n } finally {\n // Base condition!\n if (noPendingTask) {\n log(`No pending sub-task for task ${taskId}`);\n\n await pageBuilder.pageImportExportTask.updateTask(taskId, {\n status: PageImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish importing pages.`\n }\n });\n } else {\n log(`Invoking PROCESS for task \"${subTaskIndex + 1}\"`);\n // We want to continue with Self invocation no matter if current page error out.\n await invokeHandlerClient<Payload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId,\n subTaskIndex: subTaskIndex + 1,\n identity: context.security.getIdentity()\n },\n description: \"Import pages - process - subtask\"\n });\n }\n }\n return {\n data: \"\",\n error: null\n };\n }\n );\n};\n"],"mappings":"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"}