@unchainedshop/core-assortments 3.0.0-rc8 → 3.0.0
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/module/configureAssortmentFiltersModule.d.ts +11 -15
- package/lib/module/configureAssortmentFiltersModule.d.ts.map +1 -1
- package/lib/module/configureAssortmentFiltersModule.js +4 -4
- package/lib/module/configureAssortmentFiltersModule.js.map +1 -1
- package/lib/module/configureAssortmentLinksModule.d.ts +11 -13
- package/lib/module/configureAssortmentLinksModule.d.ts.map +1 -1
- package/lib/module/configureAssortmentLinksModule.js +20 -20
- package/lib/module/configureAssortmentLinksModule.js.map +1 -1
- package/lib/module/configureAssortmentMediaModule.d.ts +13 -16
- package/lib/module/configureAssortmentMediaModule.d.ts.map +1 -1
- package/lib/module/configureAssortmentMediaModule.js +8 -9
- package/lib/module/configureAssortmentMediaModule.js.map +1 -1
- package/lib/module/configureAssortmentProductsModule.d.ts +14 -15
- package/lib/module/configureAssortmentProductsModule.d.ts.map +1 -1
- package/lib/module/configureAssortmentProductsModule.js +15 -8
- package/lib/module/configureAssortmentProductsModule.js.map +1 -1
- package/lib/module/configureAssortmentTextsModule.d.ts +10 -10
- package/lib/module/configureAssortmentTextsModule.d.ts.map +1 -1
- package/lib/module/configureAssortmentTextsModule.js +3 -3
- package/lib/module/configureAssortmentTextsModule.js.map +1 -1
- package/lib/module/configureAssortmentsModule.d.ts +173 -31
- package/lib/module/configureAssortmentsModule.d.ts.map +1 -1
- package/lib/module/configureAssortmentsModule.js +31 -31
- package/lib/module/configureAssortmentsModule.js.map +1 -1
- package/lib/utils/breadcrumbs/build-paths.d.ts +8 -9
- package/lib/utils/breadcrumbs/build-paths.d.ts.map +1 -1
- package/lib/utils/breadcrumbs/build-paths.js +25 -28
- package/lib/utils/breadcrumbs/build-paths.js.map +1 -1
- package/lib/utils/breadcrumbs/makeAssortmentBreadcrumbsBuilder.d.ts +4 -4
- package/lib/utils/breadcrumbs/makeAssortmentBreadcrumbsBuilder.d.ts.map +1 -1
- package/lib/utils/breadcrumbs/makeAssortmentBreadcrumbsBuilder.js +4 -4
- package/lib/utils/breadcrumbs/makeAssortmentBreadcrumbsBuilder.js.map +1 -1
- package/package.json +7 -7
- package/src/module/configureAssortmentFiltersModule.ts +33 -41
- package/src/module/configureAssortmentLinksModule.ts +78 -79
- package/src/module/configureAssortmentMediaModule.ts +66 -67
- package/src/module/configureAssortmentProductsModule.ts +80 -69
- package/src/module/configureAssortmentTextsModule.ts +34 -31
- package/src/module/configureAssortmentsModule.ts +118 -143
- package/src/utils/breadcrumbs/build-paths.ts +40 -33
- package/src/utils/breadcrumbs/makeAssortmentBreadcrumbsBuilder.ts +4 -4
- package/lib/utils/breadcrumbs/resolveAssortmentLinkFromDatabase.d.ts +0 -8
- package/lib/utils/breadcrumbs/resolveAssortmentLinkFromDatabase.d.ts.map +0 -1
- package/lib/utils/breadcrumbs/resolveAssortmentLinkFromDatabase.js +0 -15
- package/lib/utils/breadcrumbs/resolveAssortmentLinkFromDatabase.js.map +0 -1
- package/lib/utils/breadcrumbs/resolveAssortmentProductFromDatabase.d.ts +0 -4
- package/lib/utils/breadcrumbs/resolveAssortmentProductFromDatabase.d.ts.map +0 -1
- package/lib/utils/breadcrumbs/resolveAssortmentProductFromDatabase.js +0 -10
- package/lib/utils/breadcrumbs/resolveAssortmentProductFromDatabase.js.map +0 -1
- package/src/utils/breadcrumbs/resolveAssortmentLinkFromDatabase.ts +0 -25
- package/src/utils/breadcrumbs/resolveAssortmentProductFromDatabase.ts +0 -19
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
2
2
|
import { AssortmentFilter } from '../db/AssortmentsCollection.js';
|
|
3
|
-
export
|
|
4
|
-
|
|
3
|
+
export declare const configureAssortmentFiltersModule: ({ AssortmentFilters, }: {
|
|
4
|
+
AssortmentFilters: mongodb.Collection<AssortmentFilter>;
|
|
5
|
+
}) => {
|
|
6
|
+
findFilter: ({ assortmentFilterId, }: {
|
|
5
7
|
assortmentFilterId: string;
|
|
6
|
-
}, options?: {
|
|
7
|
-
skipInvalidation?: boolean;
|
|
8
8
|
}) => Promise<AssortmentFilter>;
|
|
9
|
-
findFilters: (
|
|
9
|
+
findFilters: ({ assortmentId, }: {
|
|
10
10
|
assortmentId: string;
|
|
11
|
-
}, options?: mongodb.FindOptions) => Promise<Array<AssortmentFilter>>;
|
|
12
|
-
findFilterIds: (
|
|
11
|
+
}, options?: mongodb.FindOptions<AssortmentFilter>) => Promise<Array<AssortmentFilter>>;
|
|
12
|
+
findFilterIds: ({ assortmentId }: {
|
|
13
13
|
assortmentId: string;
|
|
14
14
|
}) => Promise<Array<string>>;
|
|
15
15
|
create: (doc: AssortmentFilter) => Promise<AssortmentFilter>;
|
|
16
|
-
delete: (assortmentFilterId: string) => Promise<
|
|
17
|
-
_id: string;
|
|
18
|
-
}>>;
|
|
16
|
+
delete: (assortmentFilterId: string) => Promise<AssortmentFilter>;
|
|
19
17
|
deleteMany: (selector: mongodb.Filter<AssortmentFilter>) => Promise<number>;
|
|
20
|
-
update: (assortmentFilterId: string, doc: AssortmentFilter) => Promise<AssortmentFilter>;
|
|
21
|
-
updateManualOrder: (
|
|
18
|
+
update: (assortmentFilterId: string, doc: Partial<AssortmentFilter>) => Promise<AssortmentFilter>;
|
|
19
|
+
updateManualOrder: ({ sortKeys, }: {
|
|
22
20
|
sortKeys: Array<{
|
|
23
21
|
assortmentFilterId: string;
|
|
24
22
|
sortKey: number;
|
|
25
23
|
}>;
|
|
26
24
|
}) => Promise<Array<AssortmentFilter>>;
|
|
27
25
|
};
|
|
28
|
-
export
|
|
29
|
-
AssortmentFilters: mongodb.Collection<AssortmentFilter>;
|
|
30
|
-
}) => AssortmentFiltersModule;
|
|
26
|
+
export type AssortmentFiltersModule = ReturnType<typeof configureAssortmentFiltersModule>;
|
|
31
27
|
//# sourceMappingURL=configureAssortmentFiltersModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureAssortmentFiltersModule.d.ts","sourceRoot":"","sources":["../../src/module/configureAssortmentFiltersModule.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAQlE,
|
|
1
|
+
{"version":3,"file":"configureAssortmentFiltersModule.d.ts","sourceRoot":"","sources":["../../src/module/configureAssortmentFiltersModule.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAQlE,eAAO,MAAM,gCAAgC,2BAE1C;IACD,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;CACzD;0CAMM;QACD,kBAAkB,EAAE,MAAM,CAAC;KAC5B,KAAG,OAAO,CAAC,gBAAgB,CAAC;qCAOxB;QACD,YAAY,EAAE,MAAM,CAAC;KACtB,YACS,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAC9C,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;sCAKK;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;kBAWrE,gBAAgB,KAAG,OAAO,CAAC,gBAAgB,CAAC;iCA6C7B,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAAC;2BAYxC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;iCAoBzD,MAAM,OACrB,OAAO,CAAC,gBAAgB,CAAC,KAC7B,OAAO,CAAC,gBAAgB,CAAC;uCAUzB;QACD,QAAQ,EAAE,KAAK,CAAC;YACd,kBAAkB,EAAE,MAAM,CAAC;YAC3B,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,KAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;CAuBvC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
|
|
@@ -8,10 +8,10 @@ const ASSORTMENT_FILTER_EVENTS = [
|
|
|
8
8
|
export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
|
|
9
9
|
registerEvents(ASSORTMENT_FILTER_EVENTS);
|
|
10
10
|
return {
|
|
11
|
-
findFilter: async ({ assortmentFilterId }) => {
|
|
11
|
+
findFilter: async ({ assortmentFilterId, }) => {
|
|
12
12
|
return AssortmentFilters.findOne(generateDbFilterById(assortmentFilterId), {});
|
|
13
13
|
},
|
|
14
|
-
findFilters: async ({ assortmentId }, options) => {
|
|
14
|
+
findFilters: async ({ assortmentId, }, options) => {
|
|
15
15
|
const filters = AssortmentFilters.find({ assortmentId }, options);
|
|
16
16
|
return filters.toArray();
|
|
17
17
|
},
|
|
@@ -60,7 +60,7 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
|
|
|
60
60
|
await emit('ASSORTMENT_REMOVE_FILTER', {
|
|
61
61
|
assortmentFilterId: assortmentFilter._id,
|
|
62
62
|
});
|
|
63
|
-
return
|
|
63
|
+
return assortmentFilter;
|
|
64
64
|
},
|
|
65
65
|
deleteMany: async (selector) => {
|
|
66
66
|
const assortmentFilters = await AssortmentFilters.find(selector, {
|
|
@@ -80,7 +80,7 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
|
|
|
80
80
|
returnDocument: 'after',
|
|
81
81
|
});
|
|
82
82
|
},
|
|
83
|
-
updateManualOrder: async ({ sortKeys }) => {
|
|
83
|
+
updateManualOrder: async ({ sortKeys, }) => {
|
|
84
84
|
const changedAssortmentFilterIds = await Promise.all(sortKeys.map(async ({ assortmentFilterId, sortKey }) => {
|
|
85
85
|
await AssortmentFilters.updateOne(generateDbFilterById(assortmentFilterId), {
|
|
86
86
|
$set: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureAssortmentFiltersModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentFiltersModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAW,MAAM,wBAAwB,CAAC;AAG3F,MAAM,wBAAwB,GAAG;IAC/B,uBAAuB;IACvB,0BAA0B;IAC1B,4BAA4B;CAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"configureAssortmentFiltersModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentFiltersModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
2
2
|
import { AssortmentLink, InvalidateCacheFn } from '../db/AssortmentsCollection.js';
|
|
3
|
-
export
|
|
4
|
-
|
|
3
|
+
export declare const configureAssortmentLinksModule: ({ AssortmentLinks, invalidateCache, }: {
|
|
4
|
+
AssortmentLinks: mongodb.Collection<AssortmentLink>;
|
|
5
|
+
invalidateCache: InvalidateCacheFn;
|
|
6
|
+
}) => {
|
|
7
|
+
findLink: ({ assortmentLinkId, parentAssortmentId, childAssortmentId, }: {
|
|
5
8
|
assortmentLinkId?: string;
|
|
6
9
|
parentAssortmentId?: string;
|
|
7
10
|
childAssortmentId?: string;
|
|
8
|
-
}, options?: {
|
|
9
|
-
skipInvalidation?: boolean;
|
|
10
11
|
}) => Promise<AssortmentLink>;
|
|
11
|
-
findLinks: (
|
|
12
|
+
findLinks: ({ assortmentId, assortmentIds, parentAssortmentId, parentAssortmentIds, }: {
|
|
12
13
|
assortmentId?: string;
|
|
13
14
|
assortmentIds?: string[];
|
|
14
15
|
parentAssortmentId?: string;
|
|
@@ -17,16 +18,16 @@ export type AssortmentLinksModule = {
|
|
|
17
18
|
create: (doc: AssortmentLink, options?: {
|
|
18
19
|
skipInvalidation?: boolean;
|
|
19
20
|
}) => Promise<AssortmentLink>;
|
|
21
|
+
update: (assortmentLinkId: string, doc: AssortmentLink, options?: {
|
|
22
|
+
skipInvalidation?: boolean;
|
|
23
|
+
}) => Promise<AssortmentLink>;
|
|
20
24
|
delete: (assortmentLinkId: string, options?: {
|
|
21
25
|
skipInvalidation?: boolean;
|
|
22
26
|
}) => Promise<AssortmentLink>;
|
|
23
27
|
deleteMany: (selector: mongodb.Filter<AssortmentLink>, options?: {
|
|
24
28
|
skipInvalidation?: boolean;
|
|
25
29
|
}) => Promise<number>;
|
|
26
|
-
|
|
27
|
-
skipInvalidation?: boolean;
|
|
28
|
-
}) => Promise<AssortmentLink>;
|
|
29
|
-
updateManualOrder: (params: {
|
|
30
|
+
updateManualOrder: ({ sortKeys, }: {
|
|
30
31
|
sortKeys: Array<{
|
|
31
32
|
assortmentLinkId: string;
|
|
32
33
|
sortKey: number;
|
|
@@ -35,8 +36,5 @@ export type AssortmentLinksModule = {
|
|
|
35
36
|
skipInvalidation?: boolean;
|
|
36
37
|
}) => Promise<Array<AssortmentLink>>;
|
|
37
38
|
};
|
|
38
|
-
export
|
|
39
|
-
AssortmentLinks: mongodb.Collection<AssortmentLink>;
|
|
40
|
-
invalidateCache: InvalidateCacheFn;
|
|
41
|
-
}) => AssortmentLinksModule;
|
|
39
|
+
export type AssortmentLinksModule = ReturnType<typeof configureAssortmentLinksModule>;
|
|
42
40
|
//# sourceMappingURL=configureAssortmentLinksModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureAssortmentLinksModule.d.ts","sourceRoot":"","sources":["../../src/module/configureAssortmentLinksModule.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"configureAssortmentLinksModule.d.ts","sourceRoot":"","sources":["../../src/module/configureAssortmentLinksModule.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAQnF,eAAO,MAAM,8BAA8B,0CAGxC;IACD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACpD,eAAe,EAAE,iBAAiB,CAAC;CACpC;6EASM;QACD,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,KAAG,OAAO,CAAC,cAAc,CAAC;2FAetB;QACD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,YACS,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;kBAyB1B,cAAc,YACT;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,cAAc,CAAC;+BAuEN,MAAM,OACnB,cAAc,YACT;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,cAAc,CAAC;+BAmBN,MAAM,YACd;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,cAAc,CAAC;2BAmBd,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,YAC9B;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE;uCAkCrC;QACD,QAAQ,EAAE,KAAK,CAAC;YACd,gBAAgB,EAAE,MAAM,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,YACS;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;CA2BpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { emit, registerEvents } from '@unchainedshop/events';
|
|
2
2
|
import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
|
|
3
3
|
import { walkUpFromAssortment } from '../utils/breadcrumbs/build-paths.js';
|
|
4
|
-
import { resolveAssortmentLinkFromDatabase } from '../utils/breadcrumbs/resolveAssortmentLinkFromDatabase.js';
|
|
5
4
|
const ASSORTMENT_LINK_EVENTS = [
|
|
6
5
|
'ASSORTMENT_ADD_LINK',
|
|
7
6
|
'ASSORTMENT_REMOVE_LINK',
|
|
@@ -11,12 +10,12 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
|
|
|
11
10
|
registerEvents(ASSORTMENT_LINK_EVENTS);
|
|
12
11
|
return {
|
|
13
12
|
// Queries
|
|
14
|
-
findLink: async ({ assortmentLinkId, parentAssortmentId, childAssortmentId }) => {
|
|
13
|
+
findLink: async ({ assortmentLinkId, parentAssortmentId, childAssortmentId, }) => {
|
|
15
14
|
return AssortmentLinks.findOne(assortmentLinkId
|
|
16
15
|
? generateDbFilterById(assortmentLinkId)
|
|
17
16
|
: { parentAssortmentId, childAssortmentId }, {});
|
|
18
17
|
},
|
|
19
|
-
findLinks: async ({ assortmentId, assortmentIds, parentAssortmentId, parentAssortmentIds }, options) => {
|
|
18
|
+
findLinks: async ({ assortmentId, assortmentIds, parentAssortmentId, parentAssortmentIds, }, options) => {
|
|
20
19
|
const selector = parentAssortmentId || parentAssortmentIds
|
|
21
20
|
? {
|
|
22
21
|
parentAssortmentId: parentAssortmentId || { $in: parentAssortmentIds },
|
|
@@ -35,11 +34,18 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
|
|
|
35
34
|
// Mutations
|
|
36
35
|
create: async (doc, options) => {
|
|
37
36
|
const { _id: assortmentLinkId, parentAssortmentId, childAssortmentId, sortKey, ...rest } = doc;
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
const assortmentLinksPath = await walkUpFromAssortment({
|
|
38
|
+
resolveAssortmentLinks: async (id) => {
|
|
39
|
+
return AssortmentLinks.find({ childAssortmentId: id }, {
|
|
40
|
+
projection: { _id: 1, childAssortmentId: 1, parentAssortmentId: 1 },
|
|
41
|
+
sort: { sortKey: 1, parentAssortmentId: 1 },
|
|
42
|
+
}).toArray();
|
|
43
|
+
},
|
|
44
|
+
assortmentId: parentAssortmentId,
|
|
45
|
+
});
|
|
46
|
+
const assortmentIdAlreadyPartOfGraphParents = assortmentLinksPath.some((path) => path.links?.some((l) => l.parentAssortmentId === childAssortmentId || l.childAssortmentId === childAssortmentId));
|
|
47
|
+
if (assortmentIdAlreadyPartOfGraphParents)
|
|
48
|
+
throw Error('CyclicGraphNotSupported');
|
|
43
49
|
const $set = {
|
|
44
50
|
updated: new Date(),
|
|
45
51
|
...rest,
|
|
@@ -50,16 +56,6 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
|
|
|
50
56
|
childAssortmentId,
|
|
51
57
|
created: new Date(),
|
|
52
58
|
};
|
|
53
|
-
const assortmentLinksPath = await walkUpFromAssortment({
|
|
54
|
-
resolveAssortmentLink: resolveAssortmentLinkFromDatabase(AssortmentLinks),
|
|
55
|
-
assortmentId: parentAssortmentId,
|
|
56
|
-
});
|
|
57
|
-
assortmentLinksPath
|
|
58
|
-
.flatMap(({ links }) => links)
|
|
59
|
-
.forEach(({ parentIds }) => {
|
|
60
|
-
if (parentIds.includes(childAssortmentId))
|
|
61
|
-
throw Error('CyclicGraphNotSupported');
|
|
62
|
-
});
|
|
63
59
|
if (sortKey === undefined || sortKey === null) {
|
|
64
60
|
// Get next sort key
|
|
65
61
|
const lastAssortmentLink = (await AssortmentLinks.findOne({ parentAssortmentId }, { sort: { sortKey: -1 } })) || { sortKey: 0 };
|
|
@@ -68,7 +64,11 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
|
|
|
68
64
|
else {
|
|
69
65
|
$set.sortKey = sortKey;
|
|
70
66
|
}
|
|
71
|
-
const assortmentLink = await AssortmentLinks.findOneAndUpdate(
|
|
67
|
+
const assortmentLink = await AssortmentLinks.findOneAndUpdate({
|
|
68
|
+
...(assortmentLinkId ? generateDbFilterById(assortmentLinkId) : {}),
|
|
69
|
+
parentAssortmentId,
|
|
70
|
+
childAssortmentId,
|
|
71
|
+
}, {
|
|
72
72
|
$set,
|
|
73
73
|
$setOnInsert,
|
|
74
74
|
}, {
|
|
@@ -133,7 +133,7 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
|
|
|
133
133
|
}
|
|
134
134
|
return deletionResult.deletedCount;
|
|
135
135
|
},
|
|
136
|
-
updateManualOrder: async ({ sortKeys }, options) => {
|
|
136
|
+
updateManualOrder: async ({ sortKeys, }, options) => {
|
|
137
137
|
const changedAssortmentLinkIds = await Promise.all(sortKeys.map(async ({ assortmentLinkId, sortKey }) => {
|
|
138
138
|
await AssortmentLinks.updateOne(generateDbFilterById(assortmentLinkId), {
|
|
139
139
|
$set: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureAssortmentLinksModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentLinksModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAW,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"configureAssortmentLinksModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentLinksModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,37 @@
|
|
|
1
1
|
import { mongodb, ModuleInput } from '@unchainedshop/mongodb';
|
|
2
2
|
import { AssortmentMediaText, AssortmentMediaType } from '../db/AssortmentMediaCollection.js';
|
|
3
|
-
export
|
|
4
|
-
findAssortmentMedia: (
|
|
3
|
+
export declare const configureAssortmentMediaModule: ({ db }: ModuleInput<Record<string, never>>) => Promise<{
|
|
4
|
+
findAssortmentMedia: ({ assortmentMediaId, }: {
|
|
5
5
|
assortmentMediaId: string;
|
|
6
6
|
}) => Promise<AssortmentMediaType>;
|
|
7
|
-
findAssortmentMedias: (
|
|
8
|
-
assortmentId?: mongodb.Filter<AssortmentMediaType>[
|
|
7
|
+
findAssortmentMedias: ({ assortmentId, tags, offset, limit, }: {
|
|
8
|
+
assortmentId?: mongodb.Filter<AssortmentMediaType>["assortmentId"];
|
|
9
9
|
limit?: number;
|
|
10
10
|
offset?: number;
|
|
11
11
|
tags?: Array<string>;
|
|
12
12
|
}, options?: mongodb.FindOptions) => Promise<Array<AssortmentMediaType>>;
|
|
13
|
-
create: (doc:
|
|
14
|
-
assortmentId: string;
|
|
15
|
-
mediaId: string;
|
|
16
|
-
}) => Promise<AssortmentMediaType>;
|
|
13
|
+
create: ({ sortKey, tags, ...doc }: Omit<AssortmentMediaType, "sortKey" | "tags"> & Partial<Pick<AssortmentMediaType, "sortKey" | "tags">>) => Promise<AssortmentMediaType>;
|
|
17
14
|
delete: (assortmentMediaId: string) => Promise<number>;
|
|
18
|
-
deleteMediaFiles: (
|
|
15
|
+
deleteMediaFiles: ({ assortmentId, excludedAssortmentIds, excludedAssortmentMediaIds, }: {
|
|
19
16
|
assortmentId?: string;
|
|
20
17
|
excludedAssortmentIds?: Array<string>;
|
|
21
18
|
excludedAssortmentMediaIds?: Array<string>;
|
|
22
19
|
}) => Promise<number>;
|
|
23
|
-
update: (assortmentMediaId: string, doc: AssortmentMediaType) => Promise<AssortmentMediaType>;
|
|
24
|
-
updateManualOrder: (
|
|
20
|
+
update: (assortmentMediaId: string, doc: Partial<AssortmentMediaType>) => Promise<AssortmentMediaType>;
|
|
21
|
+
updateManualOrder: ({ sortKeys, }: {
|
|
25
22
|
sortKeys: Array<{
|
|
26
23
|
assortmentMediaId: string;
|
|
27
24
|
sortKey: number;
|
|
28
25
|
}>;
|
|
29
26
|
}) => Promise<Array<AssortmentMediaType>>;
|
|
30
27
|
texts: {
|
|
31
|
-
findMediaTexts: (
|
|
32
|
-
findLocalizedMediaText: (
|
|
28
|
+
findMediaTexts: ({ assortmentMediaId }: mongodb.Filter<AssortmentMediaText>, options?: mongodb.FindOptions) => Promise<Array<AssortmentMediaText>>;
|
|
29
|
+
findLocalizedMediaText: ({ assortmentMediaId, locale, }: {
|
|
33
30
|
assortmentMediaId: string;
|
|
34
31
|
locale: string;
|
|
35
32
|
}) => Promise<AssortmentMediaText>;
|
|
36
|
-
updateMediaTexts: (assortmentMediaId: string, texts: Array<Omit<AssortmentMediaText,
|
|
33
|
+
updateMediaTexts: (assortmentMediaId: string, texts: Array<Omit<AssortmentMediaText, "assortmentMediaId">>) => Promise<Array<AssortmentMediaText>>;
|
|
37
34
|
};
|
|
38
|
-
}
|
|
39
|
-
export
|
|
35
|
+
}>;
|
|
36
|
+
export type AssortmentMediaModule = Awaited<ReturnType<typeof configureAssortmentMediaModule>>;
|
|
40
37
|
//# sourceMappingURL=configureAssortmentMediaModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureAssortmentMediaModule.d.ts","sourceRoot":"","sources":["../../src/module/configureAssortmentMediaModule.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,OAAO,EACP,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAS9F,
|
|
1
|
+
{"version":3,"file":"configureAssortmentMediaModule.d.ts","sourceRoot":"","sources":["../../src/module/configureAssortmentMediaModule.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,OAAO,EACP,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAS9F,eAAO,MAAM,8BAA8B,WAAkB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;kDA+CxF;QACD,iBAAiB,EAAE,MAAM,CAAC;KAC3B,KAAG,OAAO,CAAC,mBAAmB,CAAC;mEAU3B;QACD,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,cAAc,CAAC,CAAC;QACnE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB,YACS,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;wCAoBnC,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,MAAM,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC,KAAG,OAAO,CAAC,mBAAmB,CAAC;gCA+BrD,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;6FAevD;QACD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,0BAA0B,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KAC5C,KAAG,OAAO,CAAC,MAAM,CAAC;gCAgCE,MAAM,OACpB,OAAO,CAAC,mBAAmB,CAAC,KAChC,OAAO,CAAC,mBAAmB,CAAC;uCAU5B;QACD,QAAQ,EAAE,KAAK,CAAC;YACd,iBAAiB,EAAE,MAAM,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,KAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;;gDA8BZ,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAChD,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;iEAOnC;YACD,iBAAiB,EAAE,MAAM,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,mBAAmB,CAAC;8CAaX,MAAM,SAClB,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,KAC3D,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;;EAS3C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC"}
|
|
@@ -7,7 +7,7 @@ const ASSORTMENT_MEDIA_EVENTS = [
|
|
|
7
7
|
'ASSORTMENT_REORDER_MEDIA',
|
|
8
8
|
'ASSORTMENT_UPDATE_MEDIA_TEXT',
|
|
9
9
|
];
|
|
10
|
-
export const configureAssortmentMediaModule = async ({ db
|
|
10
|
+
export const configureAssortmentMediaModule = async ({ db }) => {
|
|
11
11
|
registerEvents(ASSORTMENT_MEDIA_EVENTS);
|
|
12
12
|
const { AssortmentMedia, AssortmentMediaTexts } = await AssortmentMediaCollection(db);
|
|
13
13
|
const upsertLocalizedText = async (assortmentMediaId, locale, text) => {
|
|
@@ -41,10 +41,10 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
|
|
|
41
41
|
};
|
|
42
42
|
return {
|
|
43
43
|
// Queries
|
|
44
|
-
findAssortmentMedia: async ({ assortmentMediaId }) => {
|
|
44
|
+
findAssortmentMedia: async ({ assortmentMediaId, }) => {
|
|
45
45
|
return AssortmentMedia.findOne(generateDbFilterById(assortmentMediaId), {});
|
|
46
46
|
},
|
|
47
|
-
findAssortmentMedias: async ({ assortmentId, tags, offset, limit }, options) => {
|
|
47
|
+
findAssortmentMedias: async ({ assortmentId, tags, offset, limit, }, options) => {
|
|
48
48
|
const selector = assortmentId ? { assortmentId } : {};
|
|
49
49
|
if (tags && tags.length > 0) {
|
|
50
50
|
selector.tags = { $all: tags };
|
|
@@ -57,8 +57,7 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
|
|
|
57
57
|
});
|
|
58
58
|
return mediaList.toArray();
|
|
59
59
|
},
|
|
60
|
-
create: async (doc) => {
|
|
61
|
-
let { sortKey } = doc;
|
|
60
|
+
create: async ({ sortKey = null, tags = [], ...doc }) => {
|
|
62
61
|
if (sortKey === undefined || sortKey === null) {
|
|
63
62
|
// Get next sort key
|
|
64
63
|
const lastAssortmentMedia = (await AssortmentMedia.findOne({
|
|
@@ -71,7 +70,7 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
|
|
|
71
70
|
const { insertedId: assortmentMediaId } = await AssortmentMedia.insertOne({
|
|
72
71
|
_id: generateDbObjectId(),
|
|
73
72
|
created: new Date(),
|
|
74
|
-
tags
|
|
73
|
+
tags,
|
|
75
74
|
...doc,
|
|
76
75
|
sortKey,
|
|
77
76
|
});
|
|
@@ -90,7 +89,7 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
|
|
|
90
89
|
});
|
|
91
90
|
return deletedResult.deletedCount;
|
|
92
91
|
},
|
|
93
|
-
deleteMediaFiles: async ({ assortmentId, excludedAssortmentIds, excludedAssortmentMediaIds }) => {
|
|
92
|
+
deleteMediaFiles: async ({ assortmentId, excludedAssortmentIds, excludedAssortmentMediaIds, }) => {
|
|
94
93
|
const selector = assortmentId ? { assortmentId } : {};
|
|
95
94
|
if (!assortmentId && excludedAssortmentIds) {
|
|
96
95
|
selector.assortmentId = { $nin: excludedAssortmentIds };
|
|
@@ -116,7 +115,7 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
|
|
|
116
115
|
returnDocument: 'after',
|
|
117
116
|
});
|
|
118
117
|
},
|
|
119
|
-
updateManualOrder: async ({ sortKeys }) => {
|
|
118
|
+
updateManualOrder: async ({ sortKeys, }) => {
|
|
120
119
|
const changedAssortmentMediaIds = await Promise.all(sortKeys.map(async ({ assortmentMediaId, sortKey }) => {
|
|
121
120
|
await AssortmentMedia.updateOne(generateDbFilterById(assortmentMediaId), {
|
|
122
121
|
$set: {
|
|
@@ -140,7 +139,7 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
|
|
|
140
139
|
findMediaTexts: async ({ assortmentMediaId }, options) => {
|
|
141
140
|
return AssortmentMediaTexts.find({ assortmentMediaId }, options).toArray();
|
|
142
141
|
},
|
|
143
|
-
findLocalizedMediaText: async ({ assortmentMediaId, locale }) => {
|
|
142
|
+
findLocalizedMediaText: async ({ assortmentMediaId, locale, }) => {
|
|
144
143
|
const parsedLocale = new Intl.Locale(locale);
|
|
145
144
|
const text = await findLocalizedText(AssortmentMediaTexts, { assortmentMediaId }, parsedLocale);
|
|
146
145
|
return text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureAssortmentMediaModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentMediaModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,GAGnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAG/E,MAAM,uBAAuB,GAAG;IAC9B,sBAAsB;IACtB,yBAAyB;IACzB,0BAA0B;IAC1B,8BAA8B;CAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"configureAssortmentMediaModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentMediaModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
2
2
|
import { InvalidateCacheFn, AssortmentProduct } from '../db/AssortmentsCollection.js';
|
|
3
|
-
export
|
|
4
|
-
|
|
3
|
+
export declare const configureAssortmentProductsModule: ({ AssortmentProducts, invalidateCache, }: {
|
|
4
|
+
AssortmentProducts: mongodb.Collection<AssortmentProduct>;
|
|
5
|
+
invalidateCache: InvalidateCacheFn;
|
|
6
|
+
}) => {
|
|
7
|
+
findAssortmentIds: ({ productId, tags, }: {
|
|
5
8
|
productId: string;
|
|
6
9
|
tags?: Array<string>;
|
|
7
10
|
}) => Promise<Array<string>>;
|
|
8
|
-
findProductIds: (
|
|
11
|
+
findProductIds: ({ assortmentId, tags, }: {
|
|
9
12
|
assortmentId: string;
|
|
10
13
|
tags?: Array<string>;
|
|
11
14
|
}) => Promise<Array<string>>;
|
|
12
|
-
|
|
15
|
+
findAssortmentProduct: ({ assortmentProductId, }: {
|
|
13
16
|
assortmentProductId: string;
|
|
14
17
|
}) => Promise<AssortmentProduct>;
|
|
15
|
-
|
|
18
|
+
findAssortmentProducts: ({ productId, productIds, assortmentId, assortmentIds, }: {
|
|
16
19
|
assortmentId?: string;
|
|
17
20
|
assortmentIds?: Array<string>;
|
|
21
|
+
productId?: string;
|
|
22
|
+
productIds?: Array<string>;
|
|
18
23
|
}, options?: mongodb.FindOptions) => Promise<Array<AssortmentProduct>>;
|
|
19
|
-
|
|
24
|
+
findSiblings: ({ assortmentIds, productId, }: {
|
|
20
25
|
productId: string;
|
|
21
26
|
assortmentIds: Array<string>;
|
|
22
27
|
}) => Promise<Array<string>>;
|
|
@@ -25,17 +30,14 @@ export type AssortmentProductsModule = {
|
|
|
25
30
|
}) => Promise<AssortmentProduct>;
|
|
26
31
|
delete: (assortmentProductId: string, options?: {
|
|
27
32
|
skipInvalidation?: boolean;
|
|
28
|
-
}) => Promise<Array<
|
|
29
|
-
_id: string;
|
|
30
|
-
assortmentId: string;
|
|
31
|
-
}>>;
|
|
33
|
+
}) => Promise<Array<AssortmentProduct>>;
|
|
32
34
|
deleteMany: (selector: mongodb.Filter<AssortmentProduct>, options?: {
|
|
33
35
|
skipInvalidation?: boolean;
|
|
34
36
|
}) => Promise<number>;
|
|
35
37
|
update: (assortmentProductId: string, doc: AssortmentProduct, options?: {
|
|
36
38
|
skipInvalidation?: boolean;
|
|
37
39
|
}) => Promise<AssortmentProduct>;
|
|
38
|
-
updateManualOrder: (
|
|
40
|
+
updateManualOrder: ({ sortKeys, }: {
|
|
39
41
|
sortKeys: Array<{
|
|
40
42
|
assortmentProductId: string;
|
|
41
43
|
sortKey: number;
|
|
@@ -44,8 +46,5 @@ export type AssortmentProductsModule = {
|
|
|
44
46
|
skipInvalidation?: boolean;
|
|
45
47
|
}) => Promise<Array<AssortmentProduct>>;
|
|
46
48
|
};
|
|
47
|
-
export
|
|
48
|
-
AssortmentProducts: mongodb.Collection<AssortmentProduct>;
|
|
49
|
-
invalidateCache: InvalidateCacheFn;
|
|
50
|
-
}) => AssortmentProductsModule;
|
|
49
|
+
export type AssortmentProductsModule = ReturnType<typeof configureAssortmentProductsModule>;
|
|
51
50
|
//# sourceMappingURL=configureAssortmentProductsModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureAssortmentProductsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureAssortmentProductsModule.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAQtF,
|
|
1
|
+
{"version":3,"file":"configureAssortmentProductsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureAssortmentProductsModule.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAQtF,eAAO,MAAM,iCAAiC,6CAG3C;IACD,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC1D,eAAe,EAAE,iBAAiB,CAAC;CACpC;8CAQM;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;8CAavB;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;sDAYvB;QACD,mBAAmB,EAAE,MAAM,CAAC;KAC7B,KAAG,OAAO,CAAC,iBAAiB,CAAC;sFAUzB;QACD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KAC5B,YACS,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;kDAejC;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KAC9B,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;kBAiBnB,iBAAiB,YACZ;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,iBAAiB,CAAC;kCAmDN,MAAM,YACjB;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;2BAkBxB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,YACjC;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,MAAM,CAAC;kCAyBK,MAAM,OACtB,iBAAiB,YACZ;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,iBAAiB,CAAC;uCAqBxB;QACD,QAAQ,EAAE,KAAK,CAAC;YACd,mBAAmB,EAAE,MAAM,CAAC;YAC5B,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,YACS;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;CA4BvC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@ export const configureAssortmentProductsModule = ({ AssortmentProducts, invalida
|
|
|
9
9
|
registerEvents(ASSORTMENT_PRODUCT_EVENTS);
|
|
10
10
|
return {
|
|
11
11
|
// Queries
|
|
12
|
-
findAssortmentIds: async ({ productId, tags }) => {
|
|
12
|
+
findAssortmentIds: async ({ productId, tags, }) => {
|
|
13
13
|
const selector = { productId };
|
|
14
14
|
if (tags) {
|
|
15
15
|
selector.tags = { $in: tags };
|
|
@@ -18,7 +18,7 @@ export const configureAssortmentProductsModule = ({ AssortmentProducts, invalida
|
|
|
18
18
|
.map(({ assortmentId }) => assortmentId)
|
|
19
19
|
.toArray();
|
|
20
20
|
},
|
|
21
|
-
findProductIds: async ({ assortmentId, tags }) => {
|
|
21
|
+
findProductIds: async ({ assortmentId, tags, }) => {
|
|
22
22
|
const selector = { assortmentId };
|
|
23
23
|
if (tags) {
|
|
24
24
|
selector.tags = { $in: tags };
|
|
@@ -27,14 +27,21 @@ export const configureAssortmentProductsModule = ({ AssortmentProducts, invalida
|
|
|
27
27
|
.map(({ productId }) => productId)
|
|
28
28
|
.toArray();
|
|
29
29
|
},
|
|
30
|
-
|
|
30
|
+
findAssortmentProduct: async ({ assortmentProductId, }) => {
|
|
31
31
|
return AssortmentProducts.findOne(generateDbFilterById(assortmentProductId), {});
|
|
32
32
|
},
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
33
|
+
findAssortmentProducts: async ({ productId, productIds, assortmentId, assortmentIds, }, options) => {
|
|
34
|
+
const selector = {};
|
|
35
|
+
if (assortmentId || assortmentIds) {
|
|
36
|
+
selector.assortmentId = assortmentId || { $in: assortmentIds };
|
|
37
|
+
}
|
|
38
|
+
if (productId || productIds) {
|
|
39
|
+
selector.productId = productId || { $in: productIds };
|
|
40
|
+
}
|
|
41
|
+
const assortmentProducts = AssortmentProducts.find(selector, options);
|
|
42
|
+
return assortmentProducts.toArray();
|
|
36
43
|
},
|
|
37
|
-
|
|
44
|
+
findSiblings: async ({ assortmentIds, productId, }) => {
|
|
38
45
|
const selector = {
|
|
39
46
|
assortmentId: { $in: assortmentIds },
|
|
40
47
|
};
|
|
@@ -129,7 +136,7 @@ export const configureAssortmentProductsModule = ({ AssortmentProducts, invalida
|
|
|
129
136
|
}
|
|
130
137
|
return assortmentProduct;
|
|
131
138
|
},
|
|
132
|
-
updateManualOrder: async ({ sortKeys }, options) => {
|
|
139
|
+
updateManualOrder: async ({ sortKeys, }, options) => {
|
|
133
140
|
const changedAssortmentProductIds = await Promise.all(sortKeys.map(async ({ assortmentProductId, sortKey }) => {
|
|
134
141
|
await AssortmentProducts.updateOne(generateDbFilterById(assortmentProductId), {
|
|
135
142
|
$set: {
|