@unchainedshop/platform 2.4.3 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bulk-importer/handlers/assortment/create.js +6 -5
- package/lib/bulk-importer/handlers/assortment/create.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/update.js +6 -5
- package/lib/bulk-importer/handlers/assortment/update.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertMedia.js +4 -3
- package/lib/bulk-importer/handlers/assortment/upsertMedia.js.map +1 -1
- package/lib/bulk-importer/handlers/filter/create.js +18 -6
- package/lib/bulk-importer/handlers/filter/create.js.map +1 -1
- package/lib/bulk-importer/handlers/filter/update.js +12 -4
- package/lib/bulk-importer/handlers/filter/update.js.map +1 -1
- package/lib/bulk-importer/handlers/product/create.js +6 -5
- package/lib/bulk-importer/handlers/product/create.js.map +1 -1
- package/lib/bulk-importer/handlers/product/update.js +6 -5
- package/lib/bulk-importer/handlers/product/update.js.map +1 -1
- package/lib/bulk-importer/handlers/product/upsertMedia.js +5 -2
- package/lib/bulk-importer/handlers/product/upsertMedia.js.map +1 -1
- package/lib/bulk-importer/handlers/product/upsertVariations.js +11 -12
- package/lib/bulk-importer/handlers/product/upsertVariations.js.map +1 -1
- package/package.json +12 -12
- package/src/bulk-importer/handlers/assortment/create.ts +8 -7
- package/src/bulk-importer/handlers/assortment/update.ts +8 -7
- package/src/bulk-importer/handlers/assortment/upsertMedia.ts +6 -9
- package/src/bulk-importer/handlers/filter/create.ts +28 -6
- package/src/bulk-importer/handlers/filter/update.ts +22 -4
- package/src/bulk-importer/handlers/product/create.ts +8 -7
- package/src/bulk-importer/handlers/product/update.ts +8 -7
- package/src/bulk-importer/handlers/product/upsertMedia.ts +7 -7
- package/src/bulk-importer/handlers/product/upsertVariations.ts +19 -25
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentContent.d.ts +0 -6
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentContent.js +0 -6
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentContent.js.map +0 -1
- package/lib/bulk-importer/handlers/filter/upsertFilterContent.d.ts +0 -11
- package/lib/bulk-importer/handlers/filter/upsertFilterContent.js +0 -6
- package/lib/bulk-importer/handlers/filter/upsertFilterContent.js.map +0 -1
- package/lib/bulk-importer/handlers/filter/upsertFilterOptionContent.d.ts +0 -5
- package/lib/bulk-importer/handlers/filter/upsertFilterOptionContent.js +0 -8
- package/lib/bulk-importer/handlers/filter/upsertFilterOptionContent.js.map +0 -1
- package/lib/bulk-importer/handlers/product/upsertProductContent.d.ts +0 -5
- package/lib/bulk-importer/handlers/product/upsertProductContent.js +0 -6
- package/lib/bulk-importer/handlers/product/upsertProductContent.js.map +0 -1
- package/src/bulk-importer/handlers/assortment/upsertAssortmentContent.ts +0 -10
- package/src/bulk-importer/handlers/filter/upsertFilterContent.ts +0 -10
- package/src/bulk-importer/handlers/filter/upsertFilterOptionContent.ts +0 -21
- package/src/bulk-importer/handlers/product/upsertProductContent.ts +0 -10
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import convertTagsToLowerCase from '../utils/convertTagsToLowerCase.js';
|
|
2
2
|
import upsertAssortmentChildren from './upsertAssortmentChildren.js';
|
|
3
|
-
import upsertAssortmentContent from './upsertAssortmentContent.js';
|
|
4
3
|
import upsertAssortmentFilters from './upsertAssortmentFilters.js';
|
|
5
4
|
import upsertAssortmentProducts from './upsertAssortmentProducts.js';
|
|
6
5
|
import upsertMedia from './upsertMedia.js';
|
|
@@ -28,10 +27,12 @@ export default async function createAssortment(payload, { logger, createShouldUp
|
|
|
28
27
|
throw new Error(`Can't create assortment ${_id}, fields missing?`);
|
|
29
28
|
}
|
|
30
29
|
logger.debug('create localized content for assortment', specification.content);
|
|
31
|
-
await
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
await modules.assortments.texts.updateTexts(_id, Object.entries(specification.content).map(([locale, localizedData]) => {
|
|
31
|
+
return {
|
|
32
|
+
locale,
|
|
33
|
+
...localizedData,
|
|
34
|
+
};
|
|
35
|
+
}));
|
|
35
36
|
logger.debug('create assortment products', products);
|
|
36
37
|
await upsertAssortmentProducts({
|
|
37
38
|
products: products || [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/create.ts"],"names":[],"mappings":"AACA,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AACxE,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import upsertAssortmentContent from './upsertAssortmentContent.js';
|
|
2
1
|
import upsertAssortmentProducts from './upsertAssortmentProducts.js';
|
|
3
2
|
import upsertAssortmentChildren from './upsertAssortmentChildren.js';
|
|
4
3
|
import upsertAssortmentFilters from './upsertAssortmentFilters.js';
|
|
@@ -16,10 +15,12 @@ export default async function updateAssortment(payload, { logger }, unchainedAPI
|
|
|
16
15
|
await unchainedAPI.modules.assortments.update(_id, { ...specification });
|
|
17
16
|
if (specification.content) {
|
|
18
17
|
logger.debug('replace localized content for assortment', specification.content);
|
|
19
|
-
await
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
await modules.assortments.texts.updateTexts(_id, Object.entries(specification.content).map(([locale, localizedData]) => {
|
|
19
|
+
return {
|
|
20
|
+
locale,
|
|
21
|
+
...localizedData,
|
|
22
|
+
};
|
|
23
|
+
}));
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
if (products) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/update.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/update.ts"],"names":[],"mappings":"AACA,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AAExE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAY,EAAE,EAAE,MAAM,EAAE,EAAE,YAA2B;IAClG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,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,CAAC,CAAC;QACzE,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAChF,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CACzC,GAAG,EACH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE;gBACnF,OAAO;oBACL,MAAM;oBACN,GAAG,aAAa;iBACjB,CAAC;YACJ,CAAC,CAAC,CACH,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;SAClB,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;SAClB,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;SAClB,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,EAAE,YAAY,CAAC,CAAC;KAC5E;IAED,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -24,9 +24,10 @@ export default async ({ media, assortmentId }, unchainedAPI) => {
|
|
|
24
24
|
if (!mediaObject)
|
|
25
25
|
throw new Error(`Unable to create media object ${mediaObject._id}`);
|
|
26
26
|
if (content) {
|
|
27
|
-
await
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
await modules.assortments.media.texts.updateMediaTexts(mediaObject._id, Object.entries(content).map(([locale, localizedData]) => ({
|
|
28
|
+
locale,
|
|
29
|
+
...localizedData,
|
|
30
|
+
})));
|
|
30
31
|
}
|
|
31
32
|
return mediaObject;
|
|
32
33
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsertMedia.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/upsertMedia.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upsertMedia.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/assortment/upsertMedia.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAK,EAAE,YAA2B,EAAE,EAAE;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,IAAI;QACF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,eAAe,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KACzD;AACH,CAAC,CAAC;AAEF,eAAe,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,YAA2B,EAAE,EAAE;IAC5E,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,kBAAkB,EAClB,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,KAAK,EAAE,EAC3D,YAAY,CACb,CAAC;QACF,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC;YACE,GAAG,SAAS;YACZ,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,GAAG;SAClB,EACD,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAEtF,IAAI,OAAO,EAAE;YACX,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CACpD,WAAW,CAAC,GAAG,EACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE,CAAC,CAAC;gBACvE,MAAM;gBACN,GAAG,aAAa;aACjB,CAAC,CAAC,CACJ,CAAC;SACH;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC/C,YAAY;QACZ,0BAA0B,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;KAC/D,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import upsertFilterContent from './upsertFilterContent.js';
|
|
2
|
-
import upsertFilterOptionContent from './upsertFilterOptionContent.js';
|
|
3
1
|
export default async function createFilter(payload, { logger, createShouldUpsertIfIDExists }, unchainedAPI) {
|
|
4
2
|
const { modules } = unchainedAPI;
|
|
5
3
|
const { specification, _id } = payload;
|
|
@@ -28,10 +26,24 @@ export default async function createFilter(payload, { logger, createShouldUpsert
|
|
|
28
26
|
if (!(await modules.filters.filterExists({ filterId: _id }))) {
|
|
29
27
|
throw new Error(`Can't upsert filter ${_id}`);
|
|
30
28
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
if (content) {
|
|
30
|
+
logger.debug('create localized content for filter', content);
|
|
31
|
+
await modules.filters.texts.updateTexts({ filterId: _id }, Object.entries(content).map(([locale, localizedData]) => {
|
|
32
|
+
return {
|
|
33
|
+
locale,
|
|
34
|
+
...localizedData,
|
|
35
|
+
};
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
if (options) {
|
|
39
|
+
logger.debug('create localized content for filter options', content);
|
|
40
|
+
await Promise.all(options.map(async ({ content: optionContent, value: optionValue }) => modules.filters.texts.updateTexts({ filterId: _id, filterOptionValue: optionValue }, Object.entries(optionContent).map(([locale, localizedData]) => {
|
|
41
|
+
return {
|
|
42
|
+
locale,
|
|
43
|
+
...localizedData,
|
|
44
|
+
};
|
|
45
|
+
}))));
|
|
46
|
+
}
|
|
35
47
|
return {
|
|
36
48
|
entity: 'FILTER',
|
|
37
49
|
operation: 'create',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import upsertFilterContent from './upsertFilterContent.js';
|
|
2
|
-
import upsertFilterOptionContent from './upsertFilterOptionContent.js';
|
|
3
1
|
export default async function updateFilter(payload, { logger }, unchainedAPI) {
|
|
4
2
|
const { modules } = unchainedAPI;
|
|
5
3
|
const { specification, _id } = payload;
|
|
@@ -16,11 +14,21 @@ export default async function updateFilter(payload, { logger }, unchainedAPI) {
|
|
|
16
14
|
}
|
|
17
15
|
if (content) {
|
|
18
16
|
logger.debug('replace localized content for filter', content);
|
|
19
|
-
await
|
|
17
|
+
await modules.filters.texts.updateTexts({ filterId: _id }, Object.entries(content).map(([locale, localizedData]) => {
|
|
18
|
+
return {
|
|
19
|
+
locale,
|
|
20
|
+
...localizedData,
|
|
21
|
+
};
|
|
22
|
+
}));
|
|
20
23
|
}
|
|
21
24
|
if (options) {
|
|
22
25
|
logger.debug('replace localized content for filter options', content);
|
|
23
|
-
await
|
|
26
|
+
await Promise.all(options.map(async ({ content: optionContent, value: optionValue }) => modules.filters.texts.updateTexts({ filterId: _id, filterOptionValue: optionValue }, Object.entries(optionContent).map(([locale, localizedData]) => {
|
|
27
|
+
return {
|
|
28
|
+
locale,
|
|
29
|
+
...localizedData,
|
|
30
|
+
};
|
|
31
|
+
}))));
|
|
24
32
|
}
|
|
25
33
|
return {
|
|
26
34
|
entity: 'FILTER',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/filter/update.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,OAAY,EACZ,EAAE,MAAM,EAAmB,EAC3B,YAA2B;IAE3B,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;SACtD,EACD,YAAY,EACZ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;KACH;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CACrC,EAAE,QAAQ,EAAE,GAAG,EAAE,EACjB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE;YACrE,OAAO;gBACL,MAAM;gBACN,GAAG,aAAa;aACjB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;KACH;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CACnE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAC/B,EAAE,QAAQ,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,EACjD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE;YAC3E,OAAO;gBACL,MAAM;gBACN,GAAG,aAAa;aACjB,CAAC;QACJ,CAAC,CAAC,CACH,CACF,CACF,CAAC;KACH;IAED,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import upsertVariations from './upsertVariations.js';
|
|
2
2
|
import upsertMedia from './upsertMedia.js';
|
|
3
|
-
import upsertProductContent from './upsertProductContent.js';
|
|
4
3
|
import transformSpecificationToProductStructure from './transformSpecificationToProductStructure.js';
|
|
5
4
|
export default async function createProduct(payload, { logger, createShouldUpsertIfIDExists }, unchainedAPI) {
|
|
6
5
|
const { modules } = unchainedAPI;
|
|
@@ -29,10 +28,12 @@ export default async function createProduct(payload, { logger, createShouldUpser
|
|
|
29
28
|
throw new Error(`Can't create product ${_id}, fields missing?`);
|
|
30
29
|
}
|
|
31
30
|
logger.debug('create localized content for product', specification.content);
|
|
32
|
-
await
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
await modules.products.texts.updateTexts(_id, Object.entries(specification.content).map(([locale, localizedData]) => {
|
|
32
|
+
return {
|
|
33
|
+
locale,
|
|
34
|
+
...localizedData,
|
|
35
|
+
};
|
|
36
|
+
}));
|
|
36
37
|
logger.debug('create product variations', variations);
|
|
37
38
|
await upsertVariations({
|
|
38
39
|
variations: variations || [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/create.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/create.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,wCAAwC,MAAM,+CAA+C,CAAC;AAErG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CACzC,OAAY,EACZ,EAAE,MAAM,EAAE,4BAA4B,EAAE,EACxC,YAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,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,CAAC;YAC5B,GAAG,WAAW;YACd,GAAG;SACJ,CAAC,CAAC;KACJ;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,CAAC,GAAG,EAAE;YACjC,GAAG,WAAW;SACf,CAAC,CAAC;KACJ;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,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CACtC,GAAG,EACH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE;QACnF,OAAO;YACL,MAAM;YACN,GAAG,aAAa;SACjB,CAAC;IACJ,CAAC,CAAC,CACH,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;KACf,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,EAAE,YAAY,CAAC,CAAC;IAExE,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import upsertVariations from './upsertVariations.js';
|
|
2
2
|
import upsertMedia from './upsertMedia.js';
|
|
3
|
-
import upsertProductContent from './upsertProductContent.js';
|
|
4
3
|
import transformSpecificationToProductStructure from './transformSpecificationToProductStructure.js';
|
|
5
4
|
export default async function createProduct(payload, { logger }, unchainedAPI) {
|
|
6
5
|
const { modules } = unchainedAPI;
|
|
@@ -16,10 +15,12 @@ export default async function createProduct(payload, { logger }, unchainedAPI) {
|
|
|
16
15
|
});
|
|
17
16
|
if (specification.content) {
|
|
18
17
|
logger.debug('replace localized content for product', specification.content);
|
|
19
|
-
await
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
await modules.products.texts.updateTexts(_id, Object.entries(specification.content).map(([locale, localizedData]) => {
|
|
19
|
+
return {
|
|
20
|
+
locale,
|
|
21
|
+
...localizedData,
|
|
22
|
+
};
|
|
23
|
+
}));
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
if (variations) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/update.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/update.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,wCAAwC,MAAM,+CAA+C,CAAC;AAErG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,OAAY,EAAE,EAAE,MAAM,EAAE,EAAE,YAA2B;IAC/F,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,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,CAAC,GAAG,EAAE;YACjC,GAAG,WAAW;SACf,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CACtC,GAAG,EACH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE;gBACnF,OAAO;oBACL,MAAM;oBACN,GAAG,aAAa;iBACjB,CAAC;YACJ,CAAC,CAAC,CACH,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;SACf,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,EAAE,YAAY,CAAC,CAAC;KAC5D;IAED,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -28,8 +28,11 @@ export default async function upsertMedia({ media, productId }, unchainedAPI) {
|
|
|
28
28
|
if (!productMedia)
|
|
29
29
|
throw new Error(`Unable to create product media object for file ${fileId}`);
|
|
30
30
|
if (content) {
|
|
31
|
-
await
|
|
32
|
-
return
|
|
31
|
+
await modules.products.media.texts.updateMediaTexts(productMedia._id, Object.entries(content).map(([locale, localizedData]) => {
|
|
32
|
+
return {
|
|
33
|
+
locale,
|
|
34
|
+
...localizedData,
|
|
35
|
+
};
|
|
33
36
|
}));
|
|
34
37
|
}
|
|
35
38
|
return productMedia;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsertMedia.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/upsertMedia.ts"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AACxE,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,MAAM,kBAAkB,GAAG,KAAK,EAAE,YAA0B,EAAE,EAAE,OAAO,EAAiB,EAAE,EAAE;IAC1F,IAAI;QACF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1E,OAAO,eAAe,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,YAAY,CAAC;QAClD,MAAM,cAAc,GAAG,GAAG,CAAC;QAC3B,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;KACxE;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,YAA2B;IACzF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,eAAe,EACf,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,EACxD,YAAY,CACb,CAAC;QACF,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;QACxB,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C;YACE,GAAG,SAAS;YACZ,IAAI;YACJ,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,GAAG;SACF,EACjB,YAAY,CACb,CAAC;QACF,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,EAAE,CAAC,CAAC;QAE/F,IAAI,OAAO,EAAE;YACX,MAAM,OAAO,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"upsertMedia.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/upsertMedia.ts"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AACxE,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,MAAM,kBAAkB,GAAG,KAAK,EAAE,YAA0B,EAAE,EAAE,OAAO,EAAiB,EAAE,EAAE;IAC1F,IAAI;QACF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1E,OAAO,eAAe,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,YAAY,CAAC;QAClD,MAAM,cAAc,GAAG,GAAG,CAAC;QAC3B,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;KACxE;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,YAA2B;IACzF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,eAAe,EACf,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,EACxD,YAAY,CACb,CAAC;QACF,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;QACxB,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C;YACE,GAAG,SAAS;YACZ,IAAI;YACJ,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,GAAG;SACF,EACjB,YAAY,CACb,CAAC;QACF,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,EAAE,CAAC,CAAC;QAE/F,IAAI,OAAO,EAAE;YACX,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CACjD,YAAY,CAAC,GAAG,EAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE;gBACrE,OAAO;oBACL,MAAM;oBACN,GAAG,aAAa;iBACjB,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;SACH;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC5C,SAAS;QACT,uBAAuB,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;KACnE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -16,18 +16,17 @@ export default async function upsertVariations({ variations, productId }, unchai
|
|
|
16
16
|
options: options.map((option) => option.value),
|
|
17
17
|
productId,
|
|
18
18
|
}, unchainedAPI);
|
|
19
|
-
await Promise.all(options.map(async ({ content: optionContent, value: optionValue }) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}, locale, localizedData);
|
|
19
|
+
await Promise.all(options.map(async ({ content: optionContent, value: optionValue }) => modules.products.variations.texts.updateVariationTexts(variation._id, Object.entries(optionContent).map(([locale, localizedData]) => {
|
|
20
|
+
return {
|
|
21
|
+
locale,
|
|
22
|
+
...localizedData,
|
|
23
|
+
};
|
|
24
|
+
}), optionValue)));
|
|
25
|
+
await modules.products.variations.texts.updateVariationTexts(variation._id, Object.entries(content).map(([locale, localizedData]) => {
|
|
26
|
+
return {
|
|
27
|
+
locale,
|
|
28
|
+
...localizedData,
|
|
29
|
+
};
|
|
31
30
|
}));
|
|
32
31
|
return variation._id;
|
|
33
32
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsertVariations.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/upsertVariations.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAAG,KAAK,EAAE,gBAAkC,EAAE,YAA2B,EAAE,EAAE;IACvF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,IAAI;QACF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAChF,OAAO,YAAY,CAAC;KACrB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;KACnF;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,YAA2B;IACnG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,MAAM,2BAA2B,GAAG,MAAM,OAAO,CAAC,GAAG,CACnD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,EAAE,EAAE;QAC/D,MAAM,SAAS,GAAG,MAAM,MAAM,CAC5B;YACE,GAAG,cAAc;YACjB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9C,SAAS;SACV,EACD,YAAY,CACb,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"upsertVariations.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/upsertVariations.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAAG,KAAK,EAAE,gBAAkC,EAAE,YAA2B,EAAE,EAAE;IACvF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IACjC,IAAI;QACF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAChF,OAAO,YAAY,CAAC;KACrB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;KACnF;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,YAA2B;IACnG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,MAAM,2BAA2B,GAAG,MAAM,OAAO,CAAC,GAAG,CACnD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,EAAE,EAAE;QAC/D,MAAM,SAAS,GAAG,MAAM,MAAM,CAC5B;YACE,GAAG,cAAc;YACjB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9C,SAAS;SACV,EACD,YAAY,CACb,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,CACpD,SAAS,CAAC,GAAG,EACb,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE;YAC3E,OAAO;gBACL,MAAM;gBACN,GAAG,aAAa;aACjB,CAAC;QACJ,CAAC,CAAC,EACF,WAAW,CACZ,CACF,CACF,CAAC;QACF,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAC1D,SAAS,CAAC,GAAG,EACb,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAgB,EAAE,EAAE;YACrE,OAAO;gBACL,MAAM;gBACN,GAAG,aAAa;aACjB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,CAAC;IACvB,CAAC,CAAC,CACH,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAC5E,SAAS;KACV,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACpC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxD,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACzD;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/platform",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"main": "lib/platform-index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/platform-index.js",
|
|
@@ -31,22 +31,22 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/api": "^2.
|
|
35
|
-
"@unchainedshop/core": "^2.
|
|
36
|
-
"@unchainedshop/events": "^2.
|
|
37
|
-
"@unchainedshop/file-upload": "^2.
|
|
38
|
-
"@unchainedshop/logger": "^2.
|
|
39
|
-
"@unchainedshop/mongodb": "^2.
|
|
40
|
-
"@unchainedshop/plugins": "^2.
|
|
41
|
-
"@unchainedshop/roles": "^2.
|
|
42
|
-
"@unchainedshop/utils": "^2.
|
|
34
|
+
"@unchainedshop/api": "^2.5.1",
|
|
35
|
+
"@unchainedshop/core": "^2.5.1",
|
|
36
|
+
"@unchainedshop/events": "^2.5.1",
|
|
37
|
+
"@unchainedshop/file-upload": "^2.5.1",
|
|
38
|
+
"@unchainedshop/logger": "^2.5.1",
|
|
39
|
+
"@unchainedshop/mongodb": "^2.5.1",
|
|
40
|
+
"@unchainedshop/plugins": "^2.5.1",
|
|
41
|
+
"@unchainedshop/roles": "^2.5.1",
|
|
42
|
+
"@unchainedshop/utils": "^2.5.1",
|
|
43
43
|
"event-iterator": "^2.0.0",
|
|
44
44
|
"JSONStream": "^1.3.5",
|
|
45
45
|
"moniker": "0.1.2"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@types/node": "^18.17.
|
|
49
|
-
"@unchainedshop/types": "^2.
|
|
48
|
+
"@types/node": "^18.17.15",
|
|
49
|
+
"@unchainedshop/types": "^2.5.1",
|
|
50
50
|
"cross-env": "^7.0.3",
|
|
51
51
|
"jest": "^29.6.4",
|
|
52
52
|
"ts-jest": "^29.1.1",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
2
|
import convertTagsToLowerCase from '../utils/convertTagsToLowerCase.js';
|
|
3
3
|
import upsertAssortmentChildren from './upsertAssortmentChildren.js';
|
|
4
|
-
import upsertAssortmentContent from './upsertAssortmentContent.js';
|
|
5
4
|
import upsertAssortmentFilters from './upsertAssortmentFilters.js';
|
|
6
5
|
import upsertAssortmentProducts from './upsertAssortmentProducts.js';
|
|
7
6
|
import upsertMedia from './upsertMedia.js';
|
|
@@ -36,12 +35,14 @@ export default async function createAssortment(
|
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
logger.debug('create localized content for assortment', specification.content);
|
|
39
|
-
await
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
await modules.assortments.texts.updateTexts(
|
|
39
|
+
_id,
|
|
40
|
+
Object.entries(specification.content).map(([locale, localizedData]: [string, any]) => {
|
|
41
|
+
return {
|
|
42
|
+
locale,
|
|
43
|
+
...localizedData,
|
|
44
|
+
};
|
|
45
|
+
}),
|
|
45
46
|
);
|
|
46
47
|
|
|
47
48
|
logger.debug('create assortment products', products);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
import upsertAssortmentContent from './upsertAssortmentContent.js';
|
|
3
2
|
import upsertAssortmentProducts from './upsertAssortmentProducts.js';
|
|
4
3
|
import upsertAssortmentChildren from './upsertAssortmentChildren.js';
|
|
5
4
|
import upsertAssortmentFilters from './upsertAssortmentFilters.js';
|
|
@@ -22,12 +21,14 @@ export default async function updateAssortment(payload: any, { logger }, unchain
|
|
|
22
21
|
await unchainedAPI.modules.assortments.update(_id, { ...specification });
|
|
23
22
|
if (specification.content) {
|
|
24
23
|
logger.debug('replace localized content for assortment', specification.content);
|
|
25
|
-
await
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
await modules.assortments.texts.updateTexts(
|
|
25
|
+
_id,
|
|
26
|
+
Object.entries(specification.content).map(([locale, localizedData]: [string, any]) => {
|
|
27
|
+
return {
|
|
28
|
+
locale,
|
|
29
|
+
...localizedData,
|
|
30
|
+
};
|
|
31
|
+
}),
|
|
31
32
|
);
|
|
32
33
|
}
|
|
33
34
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AssortmentMediaText } from '@unchainedshop/types/assortments.media.js';
|
|
2
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
3
2
|
import upsertAsset from '../../upsertAsset.js';
|
|
4
3
|
|
|
@@ -36,14 +35,12 @@ export default async ({ media, assortmentId }, unchainedAPI: UnchainedCore) => {
|
|
|
36
35
|
if (!mediaObject) throw new Error(`Unable to create media object ${mediaObject._id}`);
|
|
37
36
|
|
|
38
37
|
if (content) {
|
|
39
|
-
await
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
);
|
|
46
|
-
}),
|
|
38
|
+
await modules.assortments.media.texts.updateMediaTexts(
|
|
39
|
+
mediaObject._id,
|
|
40
|
+
Object.entries(content).map(([locale, localizedData]: [string, any]) => ({
|
|
41
|
+
locale,
|
|
42
|
+
...localizedData,
|
|
43
|
+
})),
|
|
47
44
|
);
|
|
48
45
|
}
|
|
49
46
|
return mediaObject;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
import upsertFilterContent from './upsertFilterContent.js';
|
|
3
|
-
import upsertFilterOptionContent from './upsertFilterOptionContent.js';
|
|
4
2
|
|
|
5
3
|
export default async function createFilter(
|
|
6
4
|
payload: any,
|
|
@@ -46,11 +44,35 @@ export default async function createFilter(
|
|
|
46
44
|
throw new Error(`Can't upsert filter ${_id}`);
|
|
47
45
|
}
|
|
48
46
|
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
if (content) {
|
|
48
|
+
logger.debug('create localized content for filter', content);
|
|
49
|
+
await modules.filters.texts.updateTexts(
|
|
50
|
+
{ filterId: _id },
|
|
51
|
+
Object.entries(content).map(([locale, localizedData]: [string, any]) => {
|
|
52
|
+
return {
|
|
53
|
+
locale,
|
|
54
|
+
...localizedData,
|
|
55
|
+
};
|
|
56
|
+
}),
|
|
57
|
+
);
|
|
58
|
+
}
|
|
51
59
|
|
|
52
|
-
|
|
53
|
-
|
|
60
|
+
if (options) {
|
|
61
|
+
logger.debug('create localized content for filter options', content);
|
|
62
|
+
await Promise.all(
|
|
63
|
+
options.map(async ({ content: optionContent, value: optionValue }) =>
|
|
64
|
+
modules.filters.texts.updateTexts(
|
|
65
|
+
{ filterId: _id, filterOptionValue: optionValue },
|
|
66
|
+
Object.entries(optionContent).map(([locale, localizedData]: [string, any]) => {
|
|
67
|
+
return {
|
|
68
|
+
locale,
|
|
69
|
+
...localizedData,
|
|
70
|
+
};
|
|
71
|
+
}),
|
|
72
|
+
),
|
|
73
|
+
),
|
|
74
|
+
);
|
|
75
|
+
}
|
|
54
76
|
|
|
55
77
|
return {
|
|
56
78
|
entity: 'FILTER',
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
import upsertFilterContent from './upsertFilterContent.js';
|
|
3
|
-
import upsertFilterOptionContent from './upsertFilterOptionContent.js';
|
|
4
2
|
|
|
5
3
|
export default async function updateFilter(
|
|
6
4
|
payload: any,
|
|
@@ -31,12 +29,32 @@ export default async function updateFilter(
|
|
|
31
29
|
|
|
32
30
|
if (content) {
|
|
33
31
|
logger.debug('replace localized content for filter', content);
|
|
34
|
-
await
|
|
32
|
+
await modules.filters.texts.updateTexts(
|
|
33
|
+
{ filterId: _id },
|
|
34
|
+
Object.entries(content).map(([locale, localizedData]: [string, any]) => {
|
|
35
|
+
return {
|
|
36
|
+
locale,
|
|
37
|
+
...localizedData,
|
|
38
|
+
};
|
|
39
|
+
}),
|
|
40
|
+
);
|
|
35
41
|
}
|
|
36
42
|
|
|
37
43
|
if (options) {
|
|
38
44
|
logger.debug('replace localized content for filter options', content);
|
|
39
|
-
await
|
|
45
|
+
await Promise.all(
|
|
46
|
+
options.map(async ({ content: optionContent, value: optionValue }) =>
|
|
47
|
+
modules.filters.texts.updateTexts(
|
|
48
|
+
{ filterId: _id, filterOptionValue: optionValue },
|
|
49
|
+
Object.entries(optionContent).map(([locale, localizedData]: [string, any]) => {
|
|
50
|
+
return {
|
|
51
|
+
locale,
|
|
52
|
+
...localizedData,
|
|
53
|
+
};
|
|
54
|
+
}),
|
|
55
|
+
),
|
|
56
|
+
),
|
|
57
|
+
);
|
|
40
58
|
}
|
|
41
59
|
|
|
42
60
|
return {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
2
|
import upsertVariations from './upsertVariations.js';
|
|
3
3
|
import upsertMedia from './upsertMedia.js';
|
|
4
|
-
import upsertProductContent from './upsertProductContent.js';
|
|
5
4
|
import transformSpecificationToProductStructure from './transformSpecificationToProductStructure.js';
|
|
6
5
|
|
|
7
6
|
export default async function createProduct(
|
|
@@ -37,12 +36,14 @@ export default async function createProduct(
|
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
logger.debug('create localized content for product', specification.content);
|
|
40
|
-
await
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
await modules.products.texts.updateTexts(
|
|
40
|
+
_id,
|
|
41
|
+
Object.entries(specification.content).map(([locale, localizedData]: [string, any]) => {
|
|
42
|
+
return {
|
|
43
|
+
locale,
|
|
44
|
+
...localizedData,
|
|
45
|
+
};
|
|
46
|
+
}),
|
|
46
47
|
);
|
|
47
48
|
|
|
48
49
|
logger.debug('create product variations', variations);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
2
|
import upsertVariations from './upsertVariations.js';
|
|
3
3
|
import upsertMedia from './upsertMedia.js';
|
|
4
|
-
import upsertProductContent from './upsertProductContent.js';
|
|
5
4
|
import transformSpecificationToProductStructure from './transformSpecificationToProductStructure.js';
|
|
6
5
|
|
|
7
6
|
export default async function createProduct(payload: any, { logger }, unchainedAPI: UnchainedCore) {
|
|
@@ -21,12 +20,14 @@ export default async function createProduct(payload: any, { logger }, unchainedA
|
|
|
21
20
|
|
|
22
21
|
if (specification.content) {
|
|
23
22
|
logger.debug('replace localized content for product', specification.content);
|
|
24
|
-
await
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
await modules.products.texts.updateTexts(
|
|
24
|
+
_id,
|
|
25
|
+
Object.entries(specification.content).map(([locale, localizedData]: [string, any]) => {
|
|
26
|
+
return {
|
|
27
|
+
locale,
|
|
28
|
+
...localizedData,
|
|
29
|
+
};
|
|
30
|
+
}),
|
|
30
31
|
);
|
|
31
32
|
}
|
|
32
33
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProductMedia
|
|
1
|
+
import { ProductMedia } from '@unchainedshop/types/products.media.js';
|
|
2
2
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
3
3
|
import convertTagsToLowerCase from '../utils/convertTagsToLowerCase.js';
|
|
4
4
|
import upsertAsset from '../../upsertAsset.js';
|
|
@@ -39,13 +39,13 @@ export default async function upsertMedia({ media, productId }, unchainedAPI: Un
|
|
|
39
39
|
if (!productMedia) throw new Error(`Unable to create product media object for file ${fileId}`);
|
|
40
40
|
|
|
41
41
|
if (content) {
|
|
42
|
-
await
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
await modules.products.media.texts.updateMediaTexts(
|
|
43
|
+
productMedia._id,
|
|
44
|
+
Object.entries(content).map(([locale, localizedData]: [string, any]) => {
|
|
45
|
+
return {
|
|
46
46
|
locale,
|
|
47
|
-
localizedData,
|
|
48
|
-
|
|
47
|
+
...localizedData,
|
|
48
|
+
};
|
|
49
49
|
}),
|
|
50
50
|
);
|
|
51
51
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
import { ProductVariation
|
|
2
|
+
import { ProductVariation } from '@unchainedshop/types/products.variations.js';
|
|
3
3
|
|
|
4
4
|
const upsert = async (productVariation: ProductVariation, unchainedAPI: UnchainedCore) => {
|
|
5
5
|
const { modules } = unchainedAPI;
|
|
@@ -26,32 +26,26 @@ export default async function upsertVariations({ variations, productId }, unchai
|
|
|
26
26
|
);
|
|
27
27
|
|
|
28
28
|
await Promise.all(
|
|
29
|
-
options.map(async ({ content: optionContent, value: optionValue }) =>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
),
|
|
43
|
-
);
|
|
44
|
-
}),
|
|
29
|
+
options.map(async ({ content: optionContent, value: optionValue }) =>
|
|
30
|
+
modules.products.variations.texts.updateVariationTexts(
|
|
31
|
+
variation._id,
|
|
32
|
+
Object.entries(optionContent).map(([locale, localizedData]: [string, any]) => {
|
|
33
|
+
return {
|
|
34
|
+
locale,
|
|
35
|
+
...localizedData,
|
|
36
|
+
};
|
|
37
|
+
}),
|
|
38
|
+
optionValue,
|
|
39
|
+
),
|
|
40
|
+
),
|
|
45
41
|
);
|
|
46
|
-
await
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
productVariationId: variation._id,
|
|
51
|
-
},
|
|
42
|
+
await modules.products.variations.texts.updateVariationTexts(
|
|
43
|
+
variation._id,
|
|
44
|
+
Object.entries(content).map(([locale, localizedData]: [string, any]) => {
|
|
45
|
+
return {
|
|
52
46
|
locale,
|
|
53
|
-
localizedData,
|
|
54
|
-
|
|
47
|
+
...localizedData,
|
|
48
|
+
};
|
|
55
49
|
}),
|
|
56
50
|
);
|
|
57
51
|
return variation._id;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export default async ({ assortmentId, content }, { modules }) => {
|
|
2
|
-
await Promise.all(Object.entries(content).map(async ([locale, localizedData]) => {
|
|
3
|
-
return modules.assortments.texts.upsertLocalizedText(assortmentId, locale, localizedData);
|
|
4
|
-
}));
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=upsertAssortmentContent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,EAAE,EAAE,OAAO,EAAiB,EAAE,EAAE;IAC7E,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,CAA2B,EAAE,EAAE;QACtF,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5F,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
export default function upsertFilterContent({ content, filterId }: {
|
|
3
|
-
content: any;
|
|
4
|
-
filterId: any;
|
|
5
|
-
}, unchainedAPI: UnchainedCore): Promise<({
|
|
6
|
-
filterId: string;
|
|
7
|
-
filterOptionValue?: string;
|
|
8
|
-
locale?: string;
|
|
9
|
-
subtitle?: string;
|
|
10
|
-
title?: string;
|
|
11
|
-
} & import("@unchainedshop/types/common.js").TimestampFields)[]>;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export default async function upsertFilterContent({ content, filterId }, unchainedAPI) {
|
|
2
|
-
return Promise.all(Object.entries(content).map(async ([locale, localizedData]) => {
|
|
3
|
-
return unchainedAPI.modules.filters.texts.upsertLocalizedText({ filterId }, locale, localizedData);
|
|
4
|
-
}));
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=upsertFilterContent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,QAAQ,EAAE,EAAE,YAA2B;IAClG,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,CAAuB,EAAE,EAAE;QAClF,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACrG,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export default async function upsertFilterOptionContent({ options, filterId }, unchainedAPI) {
|
|
2
|
-
return Promise.all((options || []).map(async ({ content: optionContent, value: optionValue }) => {
|
|
3
|
-
await Promise.all(Object.entries(optionContent).map(async ([locale, localizedData]) => {
|
|
4
|
-
return unchainedAPI.modules.filters.texts.upsertLocalizedText({ filterId, filterOptionValue: optionValue }, locale, localizedData);
|
|
5
|
-
}));
|
|
6
|
-
}));
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=upsertFilterOptionContent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,CACrD,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,YAA2B;IAE3B,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,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,CAAuB,EAAE,EAAE;YACxF,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAC3D,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAC5C,MAAM,EACN,aAAa,CACd,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export default async function upsertProductContent({ productId, content }, { modules }) {
|
|
2
|
-
await Promise.all(Object.entries(content).map(async ([locale, localizedData]) => {
|
|
3
|
-
return modules.products.texts.upsertLocalizedText(productId, locale, localizedData);
|
|
4
|
-
}));
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=upsertProductContent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAiB;IACnG,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,CAAwB,EAAE,EAAE;QACnF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACtF,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { AssortmentText } from '@unchainedshop/types/assortments.js';
|
|
2
|
-
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
3
|
-
|
|
4
|
-
export default async ({ assortmentId, content }, { modules }: UnchainedCore) => {
|
|
5
|
-
await Promise.all(
|
|
6
|
-
Object.entries(content).map(async ([locale, localizedData]: [string, AssortmentText]) => {
|
|
7
|
-
return modules.assortments.texts.upsertLocalizedText(assortmentId, locale, localizedData);
|
|
8
|
-
}),
|
|
9
|
-
);
|
|
10
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
import { FilterText } from '@unchainedshop/types/filters.js';
|
|
3
|
-
|
|
4
|
-
export default async function upsertFilterContent({ content, filterId }, unchainedAPI: UnchainedCore) {
|
|
5
|
-
return Promise.all(
|
|
6
|
-
Object.entries(content).map(async ([locale, localizedData]: [string, FilterText]) => {
|
|
7
|
-
return unchainedAPI.modules.filters.texts.upsertLocalizedText({ filterId }, locale, localizedData);
|
|
8
|
-
}),
|
|
9
|
-
);
|
|
10
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
import { FilterText } from '@unchainedshop/types/filters.js';
|
|
3
|
-
|
|
4
|
-
export default async function upsertFilterOptionContent(
|
|
5
|
-
{ options, filterId },
|
|
6
|
-
unchainedAPI: UnchainedCore,
|
|
7
|
-
) {
|
|
8
|
-
return Promise.all(
|
|
9
|
-
(options || []).map(async ({ content: optionContent, value: optionValue }) => {
|
|
10
|
-
await Promise.all(
|
|
11
|
-
Object.entries(optionContent).map(async ([locale, localizedData]: [string, FilterText]) => {
|
|
12
|
-
return unchainedAPI.modules.filters.texts.upsertLocalizedText(
|
|
13
|
-
{ filterId, filterOptionValue: optionValue },
|
|
14
|
-
locale,
|
|
15
|
-
localizedData,
|
|
16
|
-
);
|
|
17
|
-
}),
|
|
18
|
-
);
|
|
19
|
-
}),
|
|
20
|
-
);
|
|
21
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
import { ProductText } from '@unchainedshop/types/products.js';
|
|
3
|
-
|
|
4
|
-
export default async function upsertProductContent({ productId, content }, { modules }: UnchainedCore) {
|
|
5
|
-
await Promise.all(
|
|
6
|
-
Object.entries(content).map(async ([locale, localizedData]: [string, ProductText]) => {
|
|
7
|
-
return modules.products.texts.upsertLocalizedText(productId, locale, localizedData);
|
|
8
|
-
}),
|
|
9
|
-
);
|
|
10
|
-
}
|