@unchainedshop/platform 2.0.0-beta6 → 2.0.0-beta7

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 (42) hide show
  1. package/lib/bulk-importer/createBulkImporter.js +1 -1
  2. package/lib/bulk-importer/createBulkImporter.js.map +1 -1
  3. package/lib/bulk-importer/handlers/assortment/create.js +6 -3
  4. package/lib/bulk-importer/handlers/assortment/create.js.map +1 -1
  5. package/lib/bulk-importer/handlers/assortment/update.js +3 -5
  6. package/lib/bulk-importer/handlers/assortment/update.js.map +1 -1
  7. package/lib/bulk-importer/handlers/assortment/upsertAssortmentContent.js +0 -3
  8. package/lib/bulk-importer/handlers/assortment/upsertAssortmentContent.js.map +1 -1
  9. package/lib/bulk-importer/handlers/filter/create.js +7 -5
  10. package/lib/bulk-importer/handlers/filter/create.js.map +1 -1
  11. package/lib/bulk-importer/handlers/filter/update.js +12 -13
  12. package/lib/bulk-importer/handlers/filter/update.js.map +1 -1
  13. package/lib/bulk-importer/handlers/filter/upsertFilterContent.d.ts +2 -2
  14. package/lib/bulk-importer/handlers/filter/upsertFilterContent.js +2 -2
  15. package/lib/bulk-importer/handlers/filter/upsertFilterContent.js.map +1 -1
  16. package/lib/bulk-importer/handlers/filter/upsertFilterOptionContent.d.ts +2 -2
  17. package/lib/bulk-importer/handlers/filter/upsertFilterOptionContent.js +2 -2
  18. package/lib/bulk-importer/handlers/filter/upsertFilterOptionContent.js.map +1 -1
  19. package/lib/bulk-importer/handlers/product/create.js +3 -0
  20. package/lib/bulk-importer/handlers/product/create.js.map +1 -1
  21. package/lib/bulk-importer/handlers/product/update.js +3 -5
  22. package/lib/bulk-importer/handlers/product/update.js.map +1 -1
  23. package/lib/bulk-importer/handlers/product/upsertProductContent.js +0 -3
  24. package/lib/bulk-importer/handlers/product/upsertProductContent.js.map +1 -1
  25. package/lib/context/setAccessToken.d.ts +2 -2
  26. package/lib/context/setAccessToken.js.map +1 -1
  27. package/lib/startPlatform.js +1 -1
  28. package/lib/startPlatform.js.map +1 -1
  29. package/package.json +13 -13
  30. package/src/bulk-importer/createBulkImporter.ts +1 -1
  31. package/src/bulk-importer/handlers/assortment/create.ts +7 -3
  32. package/src/bulk-importer/handlers/assortment/update.ts +4 -7
  33. package/src/bulk-importer/handlers/assortment/upsertAssortmentContent.ts +0 -3
  34. package/src/bulk-importer/handlers/filter/create.ts +8 -5
  35. package/src/bulk-importer/handlers/filter/update.ts +18 -17
  36. package/src/bulk-importer/handlers/filter/upsertFilterContent.ts +5 -2
  37. package/src/bulk-importer/handlers/filter/upsertFilterOptionContent.ts +2 -2
  38. package/src/bulk-importer/handlers/product/create.ts +4 -0
  39. package/src/bulk-importer/handlers/product/update.ts +4 -6
  40. package/src/bulk-importer/handlers/product/upsertProductContent.ts +0 -3
  41. package/src/context/setAccessToken.ts +2 -2
  42. package/src/startPlatform.ts +1 -1
@@ -89,7 +89,7 @@ export const createBulkImporterFactory = (db, bulkImporterOptions) => {
89
89
  invalidateCaches: async (unchainedAPI) => {
90
90
  if (skipCacheInvalidation)
91
91
  return;
92
- await unchainedAPI.modules.assortments.invalidateCache({});
92
+ await unchainedAPI.modules.assortments.invalidateCache({}, { skipUpstreamTraversal: true });
93
93
  await unchainedAPI.modules.filters.invalidateCache({}, unchainedAPI);
94
94
  },
95
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createBulkImporter.js","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createBulkImporter.js","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"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"}
@@ -25,25 +25,28 @@ export default async function createAssortment(payload, { logger, authorId, crea
25
25
  authorId,
26
26
  }, userId);
27
27
  }
28
+ if (!(await modules.assortments.assortmentExists({ assortmentId: _id }))) {
29
+ throw new Error(`Can't create assortment ${_id}, fields missing?`);
30
+ }
28
31
  logger.debug('create localized content for assortment', specification.content);
29
32
  await upsertAssortmentContent({
30
33
  content: specification.content,
31
34
  assortmentId: _id,
32
35
  authorId,
33
36
  }, unchainedAPI);
34
- logger.debug('create product products', products);
37
+ logger.debug('create assortment products', products);
35
38
  await upsertAssortmentProducts({
36
39
  products: products || [],
37
40
  assortmentId: _id,
38
41
  authorId,
39
42
  }, unchainedAPI);
40
- logger.debug('create assortment children', products);
43
+ logger.debug('create assortment children', children);
41
44
  await upsertAssortmentChildren({
42
45
  children: children || [],
43
46
  assortmentId: _id,
44
47
  authorId,
45
48
  }, unchainedAPI);
46
- logger.debug('create assortment filters', products);
49
+ logger.debug('create assortment filters', filters);
47
50
  await upsertAssortmentFilters({
48
51
  filters: filters || [],
49
52
  assortmentId: _id,
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/create.ts"],"names":[],"mappings":"AACA,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAC5C,OAAY,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,4BAA4B,EAAE,EAClD,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC3E,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,GAAG,EAAE,CAAC,CAAC;IAErG,IAAI,CAAC,aAAa,CAAC,OAAO;QACxB,MAAM,IAAI,KAAK,CAAC,8DAA8D,GAAG,EAAE,CAAC,CAAC;IAEvF,aAAa,CAAC,IAAI,GAAG,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAEjE,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;IACxD,IAAI;QACF,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;KAC/E;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,4BAA4B;YAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAC9B,GAAG,EACH;YACE,GAAG,aAAa;YAChB,QAAQ;SACT,EACD,MAAM,CACP,CAAC;KACH;IAED,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/E,MAAM,uBAAuB,CAC3B;QACE,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,YAAY,EAAE,GAAG;QACjB,QAAQ;KACT,EACD,YAAY,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,wBAAwB,CAC5B;QACE,QAAQ,EAAE,QAAQ,IAAI,EAAE;QACxB,YAAY,EAAE,GAAG;QACjB,QAAQ;KACT,EACD,YAAY,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,wBAAwB,CAC5B;QACE,QAAQ,EAAE,QAAQ,IAAI,EAAE;QACxB,YAAY,EAAE,GAAG;QACjB,QAAQ;KACT,EACD,YAAY,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,uBAAuB,CAC3B;QACE,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,YAAY,EAAE,GAAG;QACjB,QAAQ;KACT,EACD,YAAY,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IAErF,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/create.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ import convertTagsToLowerCase from '../utils/convertTagsToLowerCase';
7
7
  export default async function updateAssortment(payload, { logger, authorId }, unchainedAPI) {
8
8
  const { modules, userId } = unchainedAPI;
9
9
  const { media, specification, products, children, filters, _id } = payload;
10
+ if (!(await modules.assortments.assortmentExists({ assortmentId: _id }))) {
11
+ throw new Error(`Can't update non-existing assortment ${_id}`);
12
+ }
10
13
  if (specification) {
11
14
  logger.debug('update assortment object', specification);
12
15
  specification.tags = convertTagsToLowerCase(specification?.tags);
@@ -20,11 +23,6 @@ export default async function updateAssortment(payload, { logger, authorId }, un
20
23
  }, unchainedAPI);
21
24
  }
22
25
  }
23
- if (products || children || filters || media) {
24
- if (!(await modules.assortments.assortmentExists({ assortmentId: _id }))) {
25
- throw new Error(`Can't update non-existing assortment ${_id}`);
26
- }
27
- }
28
26
  if (products) {
29
27
  logger.debug('update product products', products);
30
28
  await upsertAssortmentProducts({
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/update.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AAErE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAC5C,OAAY,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAE3E,IAAI,aAAa,EAAE;QACjB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;QAExD,aAAa,CAAC,IAAI,GAAG,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAEjE,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QAE3F,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAChF,MAAM,uBAAuB,CAC3B;gBACE,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,YAAY,EAAE,GAAG;gBACjB,QAAQ;aACT,EACD,YAAY,CACb,CAAC;SACH;KACF;IAED,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE;QAC5C,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;YACxE,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;SAChE;KACF;IAED,IAAI,QAAQ,EAAE;QACZ,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,wBAAwB,CAC5B;YACE,QAAQ,EAAE,QAAQ,IAAI,EAAE;YACxB,YAAY,EAAE,GAAG;YACjB,QAAQ;SACT,EACD,YAAY,CACb,CAAC;KACH;IAED,IAAI,QAAQ,EAAE;QACZ,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,wBAAwB,CAC5B;YACE,QAAQ,EAAE,QAAQ,IAAI,EAAE;YACxB,YAAY,EAAE,GAAG;YACjB,QAAQ;SACT,EACD,YAAY,CACb,CAAC;KACH;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,uBAAuB,CAC3B;YACE,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,YAAY,EAAE,GAAG;YACjB,QAAQ;SACT,EACD,YAAY,CACb,CAAC;KACH;IACD,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;KACtF;IAED,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/update.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AAErE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAC5C,OAAY,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAE3E,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QACxE,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;KAChE;IAED,IAAI,aAAa,EAAE;QACjB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;QAExD,aAAa,CAAC,IAAI,GAAG,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAEjE,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3F,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAChF,MAAM,uBAAuB,CAC3B;gBACE,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,YAAY,EAAE,GAAG;gBACjB,QAAQ;aACT,EACD,YAAY,CACb,CAAC;SACH;KACF;IAED,IAAI,QAAQ,EAAE;QACZ,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,wBAAwB,CAC5B;YACE,QAAQ,EAAE,QAAQ,IAAI,EAAE;YACxB,YAAY,EAAE,GAAG;YACjB,QAAQ;SACT,EACD,YAAY,CACb,CAAC;KACH;IAED,IAAI,QAAQ,EAAE;QACZ,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,wBAAwB,CAC5B;YACE,QAAQ,EAAE,QAAQ,IAAI,EAAE;YACxB,YAAY,EAAE,GAAG;YACjB,QAAQ;SACT,EACD,YAAY,CACb,CAAC;KACH;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,uBAAuB,CAC3B;YACE,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,YAAY,EAAE,GAAG;YACjB,QAAQ;SACT,EACD,YAAY,CACb,CAAC;KACH;IACD,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;KACtF;IAED,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -1,7 +1,4 @@
1
1
  export default async ({ assortmentId, content, authorId }, { modules, userId }) => {
2
- const assortment = await modules.assortments.findAssortment({ assortmentId });
3
- if (!assortment)
4
- throw new Error(`Can't update content of non-existing assortment ${assortmentId}`);
5
2
  await Promise.all(Object.entries(content).map(async ([locale, { authorId: tAuthorId, ...localizedData }]) => {
6
3
  return modules.assortments.texts.upsertLocalizedText(assortmentId, locale, localizedData, tAuthorId || authorId || userId);
7
4
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"upsertAssortmentContent.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/upsertAssortmentContent.ts"],"names":[],"mappings":"AAGA,eAAe,KAAK,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAW,EAAE,EAAE;IACzF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,YAAY,EAAE,CAAC,CAAC;IAEpG,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CACzB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAA2B,EAAE,EAAE;QACtF,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAClD,YAAY,EACZ,MAAM,EACN,aAAa,EACb,SAAS,IAAI,QAAQ,IAAI,MAAM,CAChC,CAAC;IACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"upsertAssortmentContent.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/upsertAssortmentContent.ts"],"names":[],"mappings":"AAGA,eAAe,KAAK,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAW,EAAE,EAAE;IACzF,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CACzB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAA2B,EAAE,EAAE;QACtF,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAClD,YAAY,EACZ,MAAM,EACN,aAAa,EACb,SAAS,IAAI,QAAQ,IAAI,MAAM,CAChC,CAAC;IACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -9,9 +9,8 @@ export default async function createFilter(payload, { logger, authorId, createSh
9
9
  if (!content)
10
10
  throw new Error(`Localizable content is required when creating new filter${_id}`);
11
11
  logger.debug('create filter object', specification);
12
- let filter;
13
12
  try {
14
- filter = await unchainedAPI.modules.filters.create({
13
+ await unchainedAPI.modules.filters.create({
15
14
  ...filterData,
16
15
  _id,
17
16
  options: options?.map((option) => option.value) || [],
@@ -22,16 +21,19 @@ export default async function createFilter(payload, { logger, authorId, createSh
22
21
  if (!createShouldUpsertIfIDExists)
23
22
  throw e;
24
23
  logger.debug('entity already exists, falling back to update', specification);
25
- filter = await modules.filters.update(_id, {
24
+ await modules.filters.update(_id, {
26
25
  ...filterData,
27
26
  options: options?.map((option) => option.value) || [],
28
27
  authorId,
29
28
  }, unchainedAPI, { skipInvalidation: true }, unchainedAPI.userId);
30
29
  }
30
+ if (!(await modules.filters.filterExists({ filterId: _id }))) {
31
+ throw new Error(`Can't upsert filter ${_id}`);
32
+ }
31
33
  logger.debug('create localized content for filter', content);
32
- await upsertFilterContent({ content, filter, authorId }, unchainedAPI);
34
+ await upsertFilterContent({ content, filterId: _id, authorId }, unchainedAPI);
33
35
  logger.debug('create localized content for filter options', content);
34
- await upsertFilterOptionContent({ options, filter }, unchainedAPI);
36
+ await upsertFilterOptionContent({ options, filterId: _id }, unchainedAPI);
35
37
  return {
36
38
  entity: 'FILTER',
37
39
  operation: 'create',
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/create.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,OAAY,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,4BAA4B,EAAE,EAClD,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAC;IAEjG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC;IAE1D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,EAAE,CAAC,CAAC;IAEhG,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC;IACX,IAAI;QACF,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAChD;YACE,GAAG,UAAU;YACb,GAAG;YACH,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrD,QAAQ;SACT,EACD,YAAY,EACZ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAC1B,YAAY,CAAC,MAAM,CACpB,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,4BAA4B;YAAE,MAAM,CAAC,CAAC;QAE3C,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CACnC,GAAG,EACH;YACE,GAAG,UAAU;YACb,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrD,QAAQ;SACT,EACD,YAAY,EACZ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAC1B,YAAY,CAAC,MAAM,CACpB,CAAC;KACH;IAED,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IAEvE,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;IAEnE,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/create.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,OAAY,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,4BAA4B,EAAE,EAClD,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAC;IAEjG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC;IAE1D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,EAAE,CAAC,CAAC;IAEhG,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;IACpD,IAAI;QACF,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CACvC;YACE,GAAG,UAAU;YACb,GAAG;YACH,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrD,QAAQ;SACT,EACD,YAAY,EACZ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAC1B,YAAY,CAAC,MAAM,CACpB,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,4BAA4B;YAAE,MAAM,CAAC,CAAC;QAE3C,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAC1B,GAAG,EACH;YACE,GAAG,UAAU;YACb,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrD,QAAQ;SACT,EACD,YAAY,EACZ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAC1B,YAAY,CAAC,MAAM,CACpB,CAAC;KACH;IAED,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QAC5D,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;KAC/C;IAED,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IAE9E,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,yBAAyB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;IAE1E,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -3,26 +3,25 @@ import upsertFilterOptionContent from './upsertFilterOptionContent';
3
3
  export default async function updateFilter(payload, { authorId, logger }, unchainedAPI) {
4
4
  const { modules } = unchainedAPI;
5
5
  const { specification, _id } = payload;
6
- if (!specification)
7
- throw new Error('Specification is required when creating a new filter');
8
- logger.debug('update filter object', specification);
6
+ if (!(await modules.filters.filterExists({ filterId: _id }))) {
7
+ throw new Error(`Can't update non-existing filter ${_id}`);
8
+ }
9
9
  const { content, options, ...filterData } = specification;
10
- const filter = await modules.filters.update(_id, {
11
- ...filterData,
12
- options: options?.map((option) => option.value) || [],
13
- authorId,
14
- }, unchainedAPI, { skipInvalidation: true }, unchainedAPI.userId);
15
- if (content || options) {
16
- if (!filter)
17
- throw new Error(`Can't update non-existing filter ${_id}`);
10
+ if (specification) {
11
+ logger.debug('update filter object', specification);
12
+ await modules.filters.update(_id, {
13
+ ...filterData,
14
+ options: options?.map((option) => option.value) || [],
15
+ authorId,
16
+ }, unchainedAPI, { skipInvalidation: true }, unchainedAPI.userId);
18
17
  }
19
18
  if (content) {
20
19
  logger.debug('replace localized content for filter', content);
21
- await upsertFilterContent({ content, filter, authorId }, unchainedAPI);
20
+ await upsertFilterContent({ content, filterId: _id, authorId }, unchainedAPI);
22
21
  }
23
22
  if (options) {
24
23
  logger.debug('replace localized content for filter options', content);
25
- await upsertFilterOptionContent({ options, filter }, unchainedAPI);
24
+ await upsertFilterOptionContent({ options, filterId: _id }, unchainedAPI);
26
25
  }
27
26
  return {
28
27
  entity: 'FILTER',
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/update.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,OAAY,EACZ,EAAE,QAAQ,EAAE,MAAM,EAAqC,EACvD,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAE5F,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CACzC,GAAG,EACH;QACE,GAAG,UAAU;QACb,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QACrD,QAAQ;KACT,EACD,YAAY,EACZ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAC1B,YAAY,CAAC,MAAM,CACpB,CAAC;IAEF,IAAI,OAAO,IAAI,OAAO,EAAE;QACtB,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;KACzE;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;KACxE;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;KACpE;IAED,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/update.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,OAAY,EACZ,EAAE,QAAQ,EAAE,MAAM,EAAqC,EACvD,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QAC5D,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;KAC5D;IAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC;IAE1D,IAAI,aAAa,EAAE;QACjB,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;QACpD,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAC1B,GAAG,EACH;YACE,GAAG,UAAU;YACb,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrD,QAAQ;SACT,EACD,YAAY,EACZ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAC1B,YAAY,CAAC,MAAM,CACpB,CAAC;KACH;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;KAC/E;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,yBAAyB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;KAC3E;IAED,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Context } from '@unchainedshop/types/api';
2
- export default function upsertFilterContent({ content, filter, authorId }: {
2
+ export default function upsertFilterContent({ content, filterId, authorId }: {
3
3
  content: any;
4
- filter: any;
4
+ filterId: any;
5
5
  authorId: any;
6
6
  }, unchainedAPI: Context): Promise<({
7
7
  authorId: string;
@@ -1,6 +1,6 @@
1
- export default async function upsertFilterContent({ content, filter, authorId }, unchainedAPI) {
1
+ export default async function upsertFilterContent({ content, filterId, authorId }, unchainedAPI) {
2
2
  return Promise.all(Object.entries(content).map(async ([locale, { authorId: tAuthorId, ...localizedData }]) => {
3
- return unchainedAPI.modules.filters.texts.upsertLocalizedText({ filterId: filter._id }, locale, localizedData, tAuthorId || authorId || unchainedAPI.userId);
3
+ return unchainedAPI.modules.filters.texts.upsertLocalizedText({ filterId }, locale, localizedData, tAuthorId || authorId || unchainedAPI.userId);
4
4
  }));
5
5
  }
6
6
  //# sourceMappingURL=upsertFilterContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upsertFilterContent.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/upsertFilterContent.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,YAAqB;IACpG,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CACzB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAAuB,EAAE,EAAE;QAClF,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAC3D,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,EACxB,MAAM,EACN,aAAa,EACb,SAAS,IAAI,QAAQ,IAAI,YAAY,CAAC,MAAM,CAC7C,CAAC;IACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"upsertFilterContent.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/upsertFilterContent.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,mBAAmB,CAC/C,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC/B,YAAqB;IAErB,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CACzB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAAuB,EAAE,EAAE;QAClF,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAC3D,EAAE,QAAQ,EAAE,EACZ,MAAM,EACN,aAAa,EACb,SAAS,IAAI,QAAQ,IAAI,YAAY,CAAC,MAAM,CAC7C,CAAC;IACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Context } from '@unchainedshop/types/api';
2
- export default function upsertFilterOptionContent({ options, filter }: {
2
+ export default function upsertFilterOptionContent({ options, filterId }: {
3
3
  options: any;
4
- filter: any;
4
+ filterId: any;
5
5
  }, unchainedAPI: Context): Promise<any[]>;
@@ -1,7 +1,7 @@
1
- export default async function upsertFilterOptionContent({ options, filter }, unchainedAPI) {
1
+ export default async function upsertFilterOptionContent({ options, filterId }, unchainedAPI) {
2
2
  return Promise.all((options || []).map(async ({ content: optionContent, value: optionValue }) => {
3
3
  await Promise.all(Object.entries(optionContent).map(async ([locale, { authorId, ...localizedData }]) => {
4
- return unchainedAPI.modules.filters.texts.upsertLocalizedText({ filterId: filter._id, filterOptionValue: optionValue }, locale, localizedData, authorId || unchainedAPI.userId);
4
+ return unchainedAPI.modules.filters.texts.upsertLocalizedText({ filterId, filterOptionValue: optionValue }, locale, localizedData, authorId || unchainedAPI.userId);
5
5
  }));
6
6
  }));
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upsertFilterOptionContent.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/upsertFilterOptionContent.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAqB;IAChG,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAuB,EAAE,EAAE;YACvE,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAC3D,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,EACxD,MAAM,EACN,aAAa,EACb,QAAQ,IAAI,YAAY,CAAC,MAAM,CAChC,CAAC;QACJ,CAAC,CACF,CACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"upsertFilterOptionContent.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/upsertFilterOptionContent.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,YAAqB;IAClG,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAuB,EAAE,EAAE;YACvE,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAC3D,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAC5C,MAAM,EACN,aAAa,EACb,QAAQ,IAAI,YAAY,CAAC,MAAM,CAChC,CAAC;QACJ,CAAC,CACF,CACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -27,6 +27,9 @@ export default async function createProduct(payload, { logger, authorId, createS
27
27
  authorId,
28
28
  }, userId);
29
29
  }
30
+ if (!(await modules.products.productExists({ productId: _id }))) {
31
+ throw new Error(`Can't create product ${_id}, fields missing?`);
32
+ }
30
33
  logger.debug('create localized content for product', specification.content);
31
34
  await upsertProductContent({
32
35
  content: specification.content,
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/create.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,wCAAwC,MAAM,4CAA4C,CAAC;AAElG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CACzC,OAAY,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,4BAA4B,EAAE,EAClD,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAE1D,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,GAAG,EAAE,CAAC,CAAC;IAElG,IAAI,CAAC,aAAa,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;IAEpG,MAAM,WAAW,GAAG,wCAAwC,CAAC,aAAa,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI;QACF,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC3B;YACE,GAAG,WAAW;YACd,GAAG;YACH,QAAQ;SACT,EACD,MAAM,CACP,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,4BAA4B;YAAE,MAAM,CAAC,CAAC;QAE3C,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC3B,GAAG,EACH;YACE,GAAG,WAAW;YACd,QAAQ;SACT,EACD,MAAM,CACP,CAAC;KACH;IAED,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5E,MAAM,oBAAoB,CACxB;QACE,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,SAAS,EAAE,GAAG;QACd,QAAQ;KACT,EACD,YAAY,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,gBAAgB,CACpB;QACE,UAAU,EAAE,UAAU,IAAI,EAAE;QAC5B,SAAS,EAAE,GAAG;QACd,QAAQ;KACT,EACD,YAAY,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IAElF,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/create.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,wCAAwC,MAAM,4CAA4C,CAAC;AAElG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CACzC,OAAY,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,4BAA4B,EAAE,EAClD,YAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAE1D,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,GAAG,EAAE,CAAC,CAAC;IAElG,IAAI,CAAC,aAAa,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;IAEpG,MAAM,WAAW,GAAG,wCAAwC,CAAC,aAAa,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI;QACF,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC3B;YACE,GAAG,WAAW;YACd,GAAG;YACH,QAAQ;SACT,EACD,MAAM,CACP,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,4BAA4B;YAAE,MAAM,CAAC,CAAC;QAE3C,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC3B,GAAG,EACH;YACE,GAAG,WAAW;YACd,QAAQ;SACT,EACD,MAAM,CACP,CAAC;KACH;IAED,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,mBAAmB,CAAC,CAAC;KACjE;IAED,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5E,MAAM,oBAAoB,CACxB;QACE,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,SAAS,EAAE,GAAG;QACd,QAAQ;KACT,EACD,YAAY,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,gBAAgB,CACpB;QACE,UAAU,EAAE,UAAU,IAAI,EAAE;QAC5B,SAAS,EAAE,GAAG;QACd,QAAQ;KACT,EACD,YAAY,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IAElF,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -5,6 +5,9 @@ import transformSpecificationToProductStructure from './transformSpecificationTo
5
5
  export default async function createProduct(payload, { logger, authorId }, unchainedAPI) {
6
6
  const { modules, userId } = unchainedAPI;
7
7
  const { specification, media, variations, _id } = payload;
8
+ if (!(await modules.products.productExists({ productId: _id }))) {
9
+ throw new Error(`Can't update non-existing product ${_id}`);
10
+ }
8
11
  if (specification) {
9
12
  const productData = transformSpecificationToProductStructure(specification);
10
13
  logger.debug('update product object', productData);
@@ -21,11 +24,6 @@ export default async function createProduct(payload, { logger, authorId }, uncha
21
24
  }, unchainedAPI);
22
25
  }
23
26
  }
24
- if (variations || media) {
25
- if (!(await modules.products.productExists({ productId: _id }))) {
26
- throw new Error(`Can't update non-existing product ${_id}`);
27
- }
28
- }
29
27
  if (variations) {
30
28
  logger.debug('replace variations', variations);
31
29
  await upsertVariations({
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/update.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,wCAAwC,MAAM,4CAA4C,CAAC;AAElG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,OAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,YAAqB;IACnG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAE1D,IAAI,aAAa,EAAE;QACjB,MAAM,WAAW,GAAG,wCAAwC,CAAC,aAAa,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC3B,GAAG,EACH;YACE,GAAG,WAAW;YACd,QAAQ;SACT,EACD,MAAM,CACP,CAAC;QAEF,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,oBAAoB,CACxB;gBACE,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,SAAS,EAAE,GAAG;gBACd,QAAQ;aACT,EACD,YAAY,CACb,CAAC;SACH;KACF;IAED,IAAI,UAAU,IAAI,KAAK,EAAE;QACvB,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;YAC/D,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;SAC7D;KACF;IAED,IAAI,UAAU,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAC/C,MAAM,gBAAgB,CACpB;YACE,UAAU,EAAE,UAAU,IAAI,EAAE;YAC5B,SAAS,EAAE,GAAG;YACd,QAAQ;SACT,EACD,YAAY,CACb,CAAC;KACH;IAED,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;KACtE;IAED,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/update.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,wCAAwC,MAAM,4CAA4C,CAAC;AAElG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,OAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,YAAqB;IACnG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAE1D,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;KAC7D;IAED,IAAI,aAAa,EAAE;QACjB,MAAM,WAAW,GAAG,wCAAwC,CAAC,aAAa,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC3B,GAAG,EACH;YACE,GAAG,WAAW;YACd,QAAQ;SACT,EACD,MAAM,CACP,CAAC;QAEF,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,oBAAoB,CACxB;gBACE,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,SAAS,EAAE,GAAG;gBACd,QAAQ;aACT,EACD,YAAY,CACb,CAAC;SACH;KACF;IAED,IAAI,UAAU,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAC/C,MAAM,gBAAgB,CACpB;YACE,UAAU,EAAE,UAAU,IAAI,EAAE;YAC5B,SAAS,EAAE,GAAG;YACd,QAAQ;SACT,EACD,YAAY,CACb,CAAC;KACH;IAED,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;KACtE;IAED,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -1,7 +1,4 @@
1
1
  export default async function upsertProductContent({ productId, content, authorId }, { modules, userId }) {
2
- const product = await modules.products.findProduct({ productId });
3
- if (!product)
4
- throw new Error(`Can't update content of non-existing product ${productId}`);
5
2
  await Promise.all(Object.entries(content).map(async ([locale, { authorId: tAuthorId, ...localizedData }]) => {
6
3
  return modules.products.texts.upsertLocalizedText(productId, locale, localizedData, tAuthorId || authorId || userId);
7
4
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"upsertProductContent.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/upsertProductContent.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,oBAAoB,CAChD,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAChC,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,SAAS,EAAE,CAAC,CAAC;IAE3F,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CACzB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAAwB,EAAE,EAAE;QACnF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAC/C,SAAS,EACT,MAAM,EACN,aAAa,EACb,SAAS,IAAI,QAAQ,IAAI,MAAM,CAChC,CAAC;IACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"upsertProductContent.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/upsertProductContent.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,oBAAoB,CAChD,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAChC,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CACzB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAAwB,EAAE,EAAE;QACnF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAC/C,SAAS,EACT,MAAM,EACN,aAAa,EACb,SAAS,IAAI,QAAQ,IAAI,MAAM,CAChC,CAAC;IACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import { Context } from '@unchainedshop/types/api';
2
- declare const _default: (unchainedAPI: Context, username: string, secret: string) => Promise<void>;
1
+ import { UnchainedCore } from '@unchainedshop/types/core';
2
+ declare const _default: (unchainedAPI: UnchainedCore, username: string, secret: string) => Promise<void>;
3
3
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"setAccessToken.js","sourceRoot":"","sources":["../../src/context/setAccessToken.ts"],"names":[],"mappings":"AAEA,eAAe,KAAK,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAc,EAAE,EAAE;IAC/E,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CACzC,EAAE,QAAQ,EAAE,EACZ;QACE,IAAI,EAAE;YACJ,gBAAgB,EAAE;gBAChB,MAAM;aACP;SACF;KACK,EACR,EAAE,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"setAccessToken.js","sourceRoot":"","sources":["../../src/context/setAccessToken.ts"],"names":[],"mappings":"AAEA,eAAe,KAAK,EAAE,YAA2B,EAAE,QAAgB,EAAE,MAAc,EAAE,EAAE;IACrF,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CACzC,EAAE,QAAQ,EAAE,EACZ;QACE,IAAI,EAAE;YACJ,gBAAgB,EAAE;gBAChB,MAAM;aACP;SACF;KACK,EACR,EAAE,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -62,7 +62,7 @@ export const startPlatform = async ({ modules = {}, services = {}, typeDefs = []
62
62
  ...generateRoleActionTypeDefs(),
63
63
  ];
64
64
  // Start the graphQL server
65
- startAPIServer({
65
+ await startAPIServer({
66
66
  unchainedAPI,
67
67
  roles: configuredRoles,
68
68
  typeDefs: [...generatedTypeDefs, ...typeDefs],
@@ -1 +1 @@
1
- {"version":3,"file":"startPlatform.js","sourceRoot":"","sources":["../src/startPlatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startPlatform.js","sourceRoot":"","sources":["../src/startPlatform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/platform",
3
- "version": "2.0.0-beta6",
3
+ "version": "2.0.0-beta7",
4
4
  "main": "lib/platform-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/platform-index.js",
@@ -30,25 +30,25 @@
30
30
  },
31
31
  "homepage": "https://github.com/unchainedshop/unchained#readme",
32
32
  "dependencies": {
33
- "@unchainedshop/api": "^2.0.0-beta6",
34
- "@unchainedshop/core": "^2.0.0-beta6",
35
- "@unchainedshop/events": "^2.0.0-beta6",
36
- "@unchainedshop/file-upload": "^2.0.0-beta6",
37
- "@unchainedshop/logger": "^2.0.0-beta6",
38
- "@unchainedshop/mongodb": "^2.0.0-beta6",
39
- "@unchainedshop/plugins": "^2.0.0-beta6",
40
- "@unchainedshop/roles": "^2.0.0-beta6",
41
- "@unchainedshop/utils": "^2.0.0-beta6",
33
+ "@unchainedshop/api": "^2.0.0-beta7",
34
+ "@unchainedshop/core": "^2.0.0-beta7",
35
+ "@unchainedshop/events": "^2.0.0-beta7",
36
+ "@unchainedshop/file-upload": "^2.0.0-beta7",
37
+ "@unchainedshop/logger": "^2.0.0-beta7",
38
+ "@unchainedshop/mongodb": "^2.0.0-beta7",
39
+ "@unchainedshop/plugins": "^2.0.0-beta7",
40
+ "@unchainedshop/roles": "^2.0.0-beta7",
41
+ "@unchainedshop/utils": "^2.0.0-beta7",
42
42
  "event-iterator": "^2.0.0",
43
43
  "JSONStream": "^1.3.5",
44
44
  "moniker": "0.1.2",
45
45
  "open": "^8.4.0"
46
46
  },
47
47
  "devDependencies": {
48
- "@types/node": "^16.18.2",
49
- "@unchainedshop/types": "^2.0.0-beta6",
48
+ "@types/node": "^18.11.9",
49
+ "@unchainedshop/types": "^2.0.0-beta7",
50
50
  "cross-env": "^7.0.3",
51
- "jest": "^29.2.2",
51
+ "jest": "^29.3.1",
52
52
  "ts-jest": "^29.0.3",
53
53
  "typescript": "^4.8.4"
54
54
  }
@@ -107,7 +107,7 @@ export const createBulkImporterFactory = (db, bulkImporterOptions: any): BulkImp
107
107
  },
108
108
  invalidateCaches: async (unchainedAPI: UnchainedCore) => {
109
109
  if (skipCacheInvalidation) return;
110
- await unchainedAPI.modules.assortments.invalidateCache({});
110
+ await unchainedAPI.modules.assortments.invalidateCache({}, { skipUpstreamTraversal: true });
111
111
  await unchainedAPI.modules.filters.invalidateCache({}, unchainedAPI);
112
112
  },
113
113
  };
@@ -36,6 +36,10 @@ export default async function createAssortment(
36
36
  );
37
37
  }
38
38
 
39
+ if (!(await modules.assortments.assortmentExists({ assortmentId: _id }))) {
40
+ throw new Error(`Can't create assortment ${_id}, fields missing?`);
41
+ }
42
+
39
43
  logger.debug('create localized content for assortment', specification.content);
40
44
  await upsertAssortmentContent(
41
45
  {
@@ -46,7 +50,7 @@ export default async function createAssortment(
46
50
  unchainedAPI,
47
51
  );
48
52
 
49
- logger.debug('create product products', products);
53
+ logger.debug('create assortment products', products);
50
54
  await upsertAssortmentProducts(
51
55
  {
52
56
  products: products || [],
@@ -56,7 +60,7 @@ export default async function createAssortment(
56
60
  unchainedAPI,
57
61
  );
58
62
 
59
- logger.debug('create assortment children', products);
63
+ logger.debug('create assortment children', children);
60
64
  await upsertAssortmentChildren(
61
65
  {
62
66
  children: children || [],
@@ -66,7 +70,7 @@ export default async function createAssortment(
66
70
  unchainedAPI,
67
71
  );
68
72
 
69
- logger.debug('create assortment filters', products);
73
+ logger.debug('create assortment filters', filters);
70
74
  await upsertAssortmentFilters(
71
75
  {
72
76
  filters: filters || [],
@@ -14,13 +14,16 @@ export default async function updateAssortment(
14
14
  const { modules, userId } = unchainedAPI;
15
15
  const { media, specification, products, children, filters, _id } = payload;
16
16
 
17
+ if (!(await modules.assortments.assortmentExists({ assortmentId: _id }))) {
18
+ throw new Error(`Can't update non-existing assortment ${_id}`);
19
+ }
20
+
17
21
  if (specification) {
18
22
  logger.debug('update assortment object', specification);
19
23
 
20
24
  specification.tags = convertTagsToLowerCase(specification?.tags);
21
25
 
22
26
  await unchainedAPI.modules.assortments.update(_id, { ...specification, authorId }, userId);
23
-
24
27
  if (specification.content) {
25
28
  logger.debug('replace localized content for assortment', specification.content);
26
29
  await upsertAssortmentContent(
@@ -34,12 +37,6 @@ export default async function updateAssortment(
34
37
  }
35
38
  }
36
39
 
37
- if (products || children || filters || media) {
38
- if (!(await modules.assortments.assortmentExists({ assortmentId: _id }))) {
39
- throw new Error(`Can't update non-existing assortment ${_id}`);
40
- }
41
- }
42
-
43
40
  if (products) {
44
41
  logger.debug('update product products', products);
45
42
  await upsertAssortmentProducts(
@@ -2,9 +2,6 @@ import { Context } from '@unchainedshop/types/api';
2
2
  import { AssortmentText } from '@unchainedshop/types/assortments';
3
3
 
4
4
  export default async ({ assortmentId, content, authorId }, { modules, userId }: Context) => {
5
- const assortment = await modules.assortments.findAssortment({ assortmentId });
6
- if (!assortment) throw new Error(`Can't update content of non-existing assortment ${assortmentId}`);
7
-
8
5
  await Promise.all(
9
6
  Object.entries(content).map(
10
7
  async ([locale, { authorId: tAuthorId, ...localizedData }]: [string, AssortmentText]) => {
@@ -17,9 +17,8 @@ export default async function createFilter(
17
17
  if (!content) throw new Error(`Localizable content is required when creating new filter${_id}`);
18
18
 
19
19
  logger.debug('create filter object', specification);
20
- let filter;
21
20
  try {
22
- filter = await unchainedAPI.modules.filters.create(
21
+ await unchainedAPI.modules.filters.create(
23
22
  {
24
23
  ...filterData,
25
24
  _id,
@@ -34,7 +33,7 @@ export default async function createFilter(
34
33
  if (!createShouldUpsertIfIDExists) throw e;
35
34
 
36
35
  logger.debug('entity already exists, falling back to update', specification);
37
- filter = await modules.filters.update(
36
+ await modules.filters.update(
38
37
  _id,
39
38
  {
40
39
  ...filterData,
@@ -47,11 +46,15 @@ export default async function createFilter(
47
46
  );
48
47
  }
49
48
 
49
+ if (!(await modules.filters.filterExists({ filterId: _id }))) {
50
+ throw new Error(`Can't upsert filter ${_id}`);
51
+ }
52
+
50
53
  logger.debug('create localized content for filter', content);
51
- await upsertFilterContent({ content, filter, authorId }, unchainedAPI);
54
+ await upsertFilterContent({ content, filterId: _id, authorId }, unchainedAPI);
52
55
 
53
56
  logger.debug('create localized content for filter options', content);
54
- await upsertFilterOptionContent({ options, filter }, unchainedAPI);
57
+ await upsertFilterOptionContent({ options, filterId: _id }, unchainedAPI);
55
58
 
56
59
  return {
57
60
  entity: 'FILTER',
@@ -10,34 +10,35 @@ export default async function updateFilter(
10
10
  const { modules } = unchainedAPI;
11
11
  const { specification, _id } = payload;
12
12
 
13
- if (!specification) throw new Error('Specification is required when creating a new filter');
13
+ if (!(await modules.filters.filterExists({ filterId: _id }))) {
14
+ throw new Error(`Can't update non-existing filter ${_id}`);
15
+ }
14
16
 
15
- logger.debug('update filter object', specification);
16
17
  const { content, options, ...filterData } = specification;
17
- const filter = await modules.filters.update(
18
- _id,
19
- {
20
- ...filterData,
21
- options: options?.map((option) => option.value) || [],
22
- authorId,
23
- },
24
- unchainedAPI,
25
- { skipInvalidation: true },
26
- unchainedAPI.userId,
27
- );
28
18
 
29
- if (content || options) {
30
- if (!filter) throw new Error(`Can't update non-existing filter ${_id}`);
19
+ if (specification) {
20
+ logger.debug('update filter object', specification);
21
+ await modules.filters.update(
22
+ _id,
23
+ {
24
+ ...filterData,
25
+ options: options?.map((option) => option.value) || [],
26
+ authorId,
27
+ },
28
+ unchainedAPI,
29
+ { skipInvalidation: true },
30
+ unchainedAPI.userId,
31
+ );
31
32
  }
32
33
 
33
34
  if (content) {
34
35
  logger.debug('replace localized content for filter', content);
35
- await upsertFilterContent({ content, filter, authorId }, unchainedAPI);
36
+ await upsertFilterContent({ content, filterId: _id, authorId }, unchainedAPI);
36
37
  }
37
38
 
38
39
  if (options) {
39
40
  logger.debug('replace localized content for filter options', content);
40
- await upsertFilterOptionContent({ options, filter }, unchainedAPI);
41
+ await upsertFilterOptionContent({ options, filterId: _id }, unchainedAPI);
41
42
  }
42
43
 
43
44
  return {
@@ -1,12 +1,15 @@
1
1
  import { Context } from '@unchainedshop/types/api';
2
2
  import { FilterText } from '@unchainedshop/types/filters';
3
3
 
4
- export default async function upsertFilterContent({ content, filter, authorId }, unchainedAPI: Context) {
4
+ export default async function upsertFilterContent(
5
+ { content, filterId, authorId },
6
+ unchainedAPI: Context,
7
+ ) {
5
8
  return Promise.all(
6
9
  Object.entries(content).map(
7
10
  async ([locale, { authorId: tAuthorId, ...localizedData }]: [string, FilterText]) => {
8
11
  return unchainedAPI.modules.filters.texts.upsertLocalizedText(
9
- { filterId: filter._id },
12
+ { filterId },
10
13
  locale,
11
14
  localizedData,
12
15
  tAuthorId || authorId || unchainedAPI.userId,
@@ -1,14 +1,14 @@
1
1
  import { Context } from '@unchainedshop/types/api';
2
2
  import { FilterText } from '@unchainedshop/types/filters';
3
3
 
4
- export default async function upsertFilterOptionContent({ options, filter }, unchainedAPI: Context) {
4
+ export default async function upsertFilterOptionContent({ options, filterId }, unchainedAPI: Context) {
5
5
  return Promise.all(
6
6
  (options || []).map(async ({ content: optionContent, value: optionValue }) => {
7
7
  await Promise.all(
8
8
  Object.entries(optionContent).map(
9
9
  async ([locale, { authorId, ...localizedData }]: [string, FilterText]) => {
10
10
  return unchainedAPI.modules.filters.texts.upsertLocalizedText(
11
- { filterId: filter._id, filterOptionValue: optionValue },
11
+ { filterId, filterOptionValue: optionValue },
12
12
  locale,
13
13
  localizedData,
14
14
  authorId || unchainedAPI.userId,
@@ -41,6 +41,10 @@ export default async function createProduct(
41
41
  );
42
42
  }
43
43
 
44
+ if (!(await modules.products.productExists({ productId: _id }))) {
45
+ throw new Error(`Can't create product ${_id}, fields missing?`);
46
+ }
47
+
44
48
  logger.debug('create localized content for product', specification.content);
45
49
  await upsertProductContent(
46
50
  {
@@ -8,6 +8,10 @@ export default async function createProduct(payload: any, { logger, authorId },
8
8
  const { modules, userId } = unchainedAPI;
9
9
  const { specification, media, variations, _id } = payload;
10
10
 
11
+ if (!(await modules.products.productExists({ productId: _id }))) {
12
+ throw new Error(`Can't update non-existing product ${_id}`);
13
+ }
14
+
11
15
  if (specification) {
12
16
  const productData = transformSpecificationToProductStructure(specification);
13
17
  logger.debug('update product object', productData);
@@ -33,12 +37,6 @@ export default async function createProduct(payload: any, { logger, authorId },
33
37
  }
34
38
  }
35
39
 
36
- if (variations || media) {
37
- if (!(await modules.products.productExists({ productId: _id }))) {
38
- throw new Error(`Can't update non-existing product ${_id}`);
39
- }
40
- }
41
-
42
40
  if (variations) {
43
41
  logger.debug('replace variations', variations);
44
42
  await upsertVariations(
@@ -5,9 +5,6 @@ export default async function upsertProductContent(
5
5
  { productId, content, authorId },
6
6
  { modules, userId }: Context,
7
7
  ) {
8
- const product = await modules.products.findProduct({ productId });
9
- if (!product) throw new Error(`Can't update content of non-existing product ${productId}`);
10
-
11
8
  await Promise.all(
12
9
  Object.entries(content).map(
13
10
  async ([locale, { authorId: tAuthorId, ...localizedData }]: [string, ProductText]) => {
@@ -1,6 +1,6 @@
1
- import { Context } from '@unchainedshop/types/api';
1
+ import { UnchainedCore } from '@unchainedshop/types/core';
2
2
 
3
- export default async (unchainedAPI: Context, username: string, secret: string) => {
3
+ export default async (unchainedAPI: UnchainedCore, username: string, secret: string) => {
4
4
  await unchainedAPI.modules.users.updateUser(
5
5
  { username },
6
6
  {
@@ -97,7 +97,7 @@ export const startPlatform = async ({
97
97
  ];
98
98
 
99
99
  // Start the graphQL server
100
- startAPIServer({
100
+ await startAPIServer({
101
101
  unchainedAPI,
102
102
  roles: configuredRoles,
103
103
  typeDefs: [...generatedTypeDefs, ...typeDefs],