@unchainedshop/core-products 3.0.0-rc9 → 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/db/ProductPriceRates.d.ts.map +1 -1
- package/lib/db/ProductPriceRates.js +0 -2
- package/lib/db/ProductPriceRates.js.map +1 -1
- package/lib/db/ProductVariationsCollection.d.ts +1 -1
- package/lib/db/ProductVariationsCollection.d.ts.map +1 -1
- package/lib/module/configureProductMediaModule.d.ts +13 -17
- package/lib/module/configureProductMediaModule.d.ts.map +1 -1
- package/lib/module/configureProductMediaModule.js +6 -7
- package/lib/module/configureProductMediaModule.js.map +1 -1
- package/lib/module/configureProductPrices.d.ts +54 -3
- package/lib/module/configureProductPrices.d.ts.map +1 -1
- package/lib/module/configureProductPrices.js +2 -2
- package/lib/module/configureProductPrices.js.map +1 -1
- package/lib/module/configureProductReviewsModule.d.ts +11 -17
- package/lib/module/configureProductReviewsModule.d.ts.map +1 -1
- package/lib/module/configureProductReviewsModule.js +10 -15
- package/lib/module/configureProductReviewsModule.js.map +1 -1
- package/lib/module/configureProductTextsModule.d.ts +17 -2
- package/lib/module/configureProductTextsModule.d.ts.map +1 -1
- package/lib/module/configureProductTextsModule.js +5 -5
- package/lib/module/configureProductTextsModule.js.map +1 -1
- package/lib/module/configureProductVariationsModule.d.ts +12 -17
- package/lib/module/configureProductVariationsModule.d.ts.map +1 -1
- package/lib/module/configureProductVariationsModule.js +6 -14
- package/lib/module/configureProductVariationsModule.js.map +1 -1
- package/lib/module/configureProductsModule.d.ts +153 -60
- package/lib/module/configureProductsModule.d.ts.map +1 -1
- package/lib/module/configureProductsModule.js +4 -4
- package/lib/module/configureProductsModule.js.map +1 -1
- package/package.json +6 -6
- package/src/db/ProductPriceRates.ts +1 -2
- package/src/db/ProductVariationsCollection.ts +1 -1
- package/src/module/configureProductMediaModule.ts +55 -67
- package/src/module/configureProductPrices.ts +64 -15
- package/src/module/configureProductReviewsModule.ts +40 -77
- package/src/module/configureProductTextsModule.ts +33 -8
- package/src/module/configureProductVariationsModule.ts +59 -86
- package/src/module/configureProductsModule.ts +90 -244
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductPriceRates.d.ts","sourceRoot":"","sources":["../../src/db/ProductPriceRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,OAAc,OAAO,CAAC,EAAE;;
|
|
1
|
+
{"version":3,"file":"ProductPriceRates.d.ts","sourceRoot":"","sources":["../../src/db/ProductPriceRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,OAAc,OAAO,CAAC,EAAE;;EAarD,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { buildDbIndexes } from '@unchainedshop/mongodb';
|
|
2
2
|
export const ProductPriceRates = async (db) => {
|
|
3
3
|
const ProductRates = db.collection('product_rates');
|
|
4
|
-
// ProductRates Indexes
|
|
5
|
-
// TODO: Time-Series Data in MongoDb 5.0!
|
|
6
4
|
await buildDbIndexes(ProductRates, [
|
|
7
5
|
{ index: { baseCurrency: 1 } },
|
|
8
6
|
{ index: { quoteCurrency: 1 } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductPriceRates.js","sourceRoot":"","sources":["../../src/db/ProductPriceRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAUjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAAc,EAAE,EAAE;IACxD,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAmB,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductPriceRates.js","sourceRoot":"","sources":["../../src/db/ProductPriceRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAUjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAAc,EAAE,EAAE;IACxD,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAmB,eAAe,CAAC,CAAC;IAEtE,MAAM,cAAc,CAAC,YAAY,EAAE;QACjC,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE;QAC9B,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE;QAC/B,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QAC1C,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;KAC3E,CAAC,CAAC;IAEH,OAAO;QACL,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductVariationsCollection.d.ts","sourceRoot":"","sources":["../../src/db/ProductVariationsCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAElF,oBAAY,oBAAoB;IAC9B,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,eAAe,CAAC;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,eAAe,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductVariationsCollection.d.ts","sourceRoot":"","sources":["../../src/db/ProductVariationsCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAElF,oBAAY,oBAAoB;IAC9B,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,eAAe,CAAC;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,eAAe,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,oBAAoB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACF,eAAO,MAAM,2BAA2B,OAAc,OAAO,CAAC,EAAE;;;EAe/D,CAAC"}
|
|
@@ -1,41 +1,37 @@
|
|
|
1
1
|
import { ModuleInput } from '@unchainedshop/mongodb';
|
|
2
2
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
3
3
|
import { ProductMedia, ProductMediaText } from '../db/ProductMediaCollection.js';
|
|
4
|
-
export
|
|
5
|
-
findProductMedia: (
|
|
4
|
+
export declare const configureProductMediaModule: ({ db }: ModuleInput<Record<string, never>>) => Promise<{
|
|
5
|
+
findProductMedia: ({ productMediaId }: {
|
|
6
6
|
productMediaId: string;
|
|
7
7
|
}) => Promise<ProductMedia>;
|
|
8
|
-
findProductMedias: (
|
|
9
|
-
productId?: mongodb.Filter<ProductMedia>[
|
|
8
|
+
findProductMedias: ({ productId, tags, offset, limit, }: {
|
|
9
|
+
productId?: mongodb.Filter<ProductMedia>["assortmentId"];
|
|
10
10
|
limit?: number;
|
|
11
11
|
offset?: number;
|
|
12
12
|
tags?: Array<string>;
|
|
13
|
-
}, options?: mongodb.FindOptions) => Promise<Array<ProductMedia>>;
|
|
14
|
-
create: (
|
|
15
|
-
productId: string;
|
|
16
|
-
mediaId: string;
|
|
17
|
-
}) => Promise<ProductMedia>;
|
|
13
|
+
}, options?: mongodb.FindOptions<ProductMedia>) => Promise<Array<ProductMedia>>;
|
|
14
|
+
create: ({ sortKey, ...doc }: Omit<ProductMedia, "sortKey" | "tags"> & Partial<Pick<ProductMedia, "sortKey" | "tags">>) => Promise<ProductMedia>;
|
|
18
15
|
delete: (productMediaId: string) => Promise<number>;
|
|
19
|
-
deleteMediaFiles: (
|
|
16
|
+
deleteMediaFiles: ({ productId, excludedProductIds, excludedProductMediaIds, }: {
|
|
20
17
|
productId?: string;
|
|
21
18
|
excludedProductIds?: Array<string>;
|
|
22
19
|
excludedProductMediaIds?: Array<string>;
|
|
23
20
|
}) => Promise<number>;
|
|
24
|
-
update: (productMediaId: string,
|
|
25
|
-
updateManualOrder: (
|
|
21
|
+
update: (productMediaId: string, doc: Partial<ProductMedia>) => Promise<ProductMedia>;
|
|
22
|
+
updateManualOrder: ({ sortKeys, }: {
|
|
26
23
|
sortKeys: Array<{
|
|
27
24
|
productMediaId: string;
|
|
28
25
|
sortKey: number;
|
|
29
26
|
}>;
|
|
30
27
|
}) => Promise<Array<ProductMedia>>;
|
|
31
28
|
texts: {
|
|
32
|
-
findMediaTexts: (
|
|
33
|
-
findLocalizedMediaText: (
|
|
29
|
+
findMediaTexts: ({ productMediaId }: mongodb.Filter<ProductMediaText>, options?: mongodb.FindOptions) => Promise<Array<ProductMediaText>>;
|
|
30
|
+
findLocalizedMediaText: ({ productMediaId, locale, }: {
|
|
34
31
|
productMediaId: string;
|
|
35
32
|
locale: string;
|
|
36
33
|
}) => Promise<ProductMediaText>;
|
|
37
|
-
updateMediaTexts: (productMediaId: string, texts: Array<Omit<ProductMediaText,
|
|
34
|
+
updateMediaTexts: (productMediaId: string, texts: Array<Omit<ProductMediaText, "productMediaId">>) => Promise<Array<ProductMediaText>>;
|
|
38
35
|
};
|
|
39
|
-
}
|
|
40
|
-
export declare const configureProductMediaModule: ({ db, }: ModuleInput<Record<string, never>>) => Promise<ProductMediaModule>;
|
|
36
|
+
}>;
|
|
41
37
|
//# sourceMappingURL=configureProductMediaModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProductMediaModule.d.ts","sourceRoot":"","sources":["../../src/module/configureProductMediaModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAIL,OAAO,EACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAA0B,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"configureProductMediaModule.d.ts","sourceRoot":"","sources":["../../src/module/configureProductMediaModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAIL,OAAO,EACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAA0B,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AASzG,eAAO,MAAM,2BAA2B,WAAkB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;2CA6C3C;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,YAAY,CAAC;6DAU1F;QACD,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,CAAC;QACzD,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,CAAC,YAAY,CAAC,KAC1C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;kCAoB5B,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,MAAM,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC,KAAG,OAAO,CAAC,YAAY,CAAC;6BA+B1C,MAAM;oFAkBlC;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,uBAAuB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACzC,KAAG,OAAO,CAAC,MAAM,CAAC;6BA6BY,MAAM,OAAO,OAAO,CAAC,YAAY,CAAC,KAAG,OAAO,CAAC,YAAY,CAAC;uCAQtF;QACD,QAAQ,EAAE,KAAK,CAAC;YACd,cAAc,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,KAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;;6CAiCR,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAC1C,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;8DAOhC;YACD,cAAc,EAAE,MAAM,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,gBAAgB,CAAC;2CAcX,MAAM,SACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,KACrD,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;;EAWxC,CAAC"}
|
|
@@ -7,7 +7,7 @@ const PRODUCT_MEDIA_EVENTS = [
|
|
|
7
7
|
'PRODUCT_REORDER_MEDIA',
|
|
8
8
|
'PRODUCT_UPDATE_MEDIA_TEXT',
|
|
9
9
|
];
|
|
10
|
-
export const configureProductMediaModule = async ({ db
|
|
10
|
+
export const configureProductMediaModule = async ({ db }) => {
|
|
11
11
|
registerEvents(PRODUCT_MEDIA_EVENTS);
|
|
12
12
|
const { ProductMedias, ProductMediaTexts } = await ProductMediaCollection(db);
|
|
13
13
|
const upsertLocalizedText = async (productMediaId, locale, text) => {
|
|
@@ -44,7 +44,7 @@ export const configureProductMediaModule = async ({ db, }) => {
|
|
|
44
44
|
findProductMedia: async ({ productMediaId }) => {
|
|
45
45
|
return ProductMedias.findOne(generateDbFilterById(productMediaId), {});
|
|
46
46
|
},
|
|
47
|
-
findProductMedias: async ({ productId, tags, offset, limit }, options) => {
|
|
47
|
+
findProductMedias: async ({ productId, tags, offset, limit, }, options) => {
|
|
48
48
|
const selector = productId ? { productId } : {};
|
|
49
49
|
if (tags?.length > 0) {
|
|
50
50
|
selector.tags = { $all: tags };
|
|
@@ -58,8 +58,7 @@ export const configureProductMediaModule = async ({ db, }) => {
|
|
|
58
58
|
return mediaList.toArray();
|
|
59
59
|
},
|
|
60
60
|
// Mutations
|
|
61
|
-
create: async (doc) => {
|
|
62
|
-
let { sortKey } = doc;
|
|
61
|
+
create: async ({ sortKey, ...doc }) => {
|
|
63
62
|
if (sortKey === undefined || sortKey === null) {
|
|
64
63
|
// Get next sort key
|
|
65
64
|
const lastProductMedia = (await ProductMedias.findOne({
|
|
@@ -91,7 +90,7 @@ export const configureProductMediaModule = async ({ db, }) => {
|
|
|
91
90
|
});
|
|
92
91
|
return deletedResult.deletedCount;
|
|
93
92
|
},
|
|
94
|
-
deleteMediaFiles: async ({ productId, excludedProductIds, excludedProductMediaIds }) => {
|
|
93
|
+
deleteMediaFiles: async ({ productId, excludedProductIds, excludedProductMediaIds, }) => {
|
|
95
94
|
const selector = productId ? { productId } : {};
|
|
96
95
|
if (!productId && excludedProductIds) {
|
|
97
96
|
selector.productId = { $nin: excludedProductIds };
|
|
@@ -113,7 +112,7 @@ export const configureProductMediaModule = async ({ db, }) => {
|
|
|
113
112
|
const modifier = { $set: doc };
|
|
114
113
|
return ProductMedias.findOneAndUpdate(selector, modifier, { returnDocument: 'after' });
|
|
115
114
|
},
|
|
116
|
-
updateManualOrder: async ({ sortKeys }) => {
|
|
115
|
+
updateManualOrder: async ({ sortKeys, }) => {
|
|
117
116
|
const changedProductMediaIds = await Promise.all(sortKeys.map(async ({ productMediaId, sortKey }) => {
|
|
118
117
|
await ProductMedias.updateOne(generateDbFilterById(productMediaId), {
|
|
119
118
|
$set: {
|
|
@@ -137,7 +136,7 @@ export const configureProductMediaModule = async ({ db, }) => {
|
|
|
137
136
|
findMediaTexts: async ({ productMediaId }, options) => {
|
|
138
137
|
return ProductMediaTexts.find({ productMediaId }, options).toArray();
|
|
139
138
|
},
|
|
140
|
-
findLocalizedMediaText: async ({ productMediaId, locale }) => {
|
|
139
|
+
findLocalizedMediaText: async ({ productMediaId, locale, }) => {
|
|
141
140
|
const parsedLocale = new Intl.Locale(locale);
|
|
142
141
|
const text = await findLocalizedText(ProductMediaTexts, { productMediaId }, parsedLocale);
|
|
143
142
|
return text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProductMediaModule.js","sourceRoot":"","sources":["../../src/module/configureProductMediaModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAgB,sBAAsB,EAAoB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"configureProductMediaModule.js","sourceRoot":"","sources":["../../src/module/configureProductMediaModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAgB,sBAAsB,EAAoB,MAAM,iCAAiC,CAAC;AAEzG,MAAM,oBAAoB,GAAG;IAC3B,mBAAmB;IACnB,sBAAsB;IACtB,uBAAuB;IACvB,2BAA2B;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAAE,EAAE,EAAE,EAAsC,EAAE,EAAE;IAC9F,cAAc,CAAC,oBAAoB,CAAC,CAAC;IAErC,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAE9E,MAAM,mBAAmB,GAAG,KAAK,EAC/B,cAAsB,EACtB,MAAc,EACd,IAAyD,EAC9B,EAAE;QAC7B,MAAM,QAAQ,GAAG;YACf,cAAc;YACd,MAAM;SACP,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAC3D,QAAQ,EACR;YACE,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,IAAI,EAAE;gBACnB,GAAG,IAAI;aACR;YACD,YAAY,EAAE;gBACZ,GAAG,EAAE,kBAAkB,EAAE;gBACzB,cAAc;gBACd,OAAO,EAAE,IAAI,IAAI,EAAE;gBACnB,MAAM;aACP;SACF,EACD;YACE,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,OAAO;YACvB,qBAAqB,EAAE,IAAI;SAC5B,CACF,CAAC;QACF,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,2BAA2B,EAAE;gBACtC,cAAc;gBACd,IAAI,EAAE,YAAY,CAAC,KAAK;aACzB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,YAAY,CAAC,KAAK,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACL,UAAU;QACV,gBAAgB,EAAE,KAAK,EAAE,EAAE,cAAc,EAA8B,EAAyB,EAAE;YAChG,OAAO,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,iBAAiB,EAAE,KAAK,EACtB,EACE,SAAS,EACT,IAAI,EACJ,MAAM,EACN,KAAK,GAMN,EACD,OAA2C,EACb,EAAE;YAChC,MAAM,QAAQ,GAAiC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,IAAI,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC;YAED,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC7C,IAAI,EAAE,MAAM;gBACZ,KAAK;gBACL,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;gBACpB,GAAG,OAAO;aACX,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,YAAY;QACZ,MAAM,EAAE,KAAK,EAAE,EACb,OAAO,EACP,GAAG,GAAG,EAEyC,EAAyB,EAAE;YAC1E,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9C,oBAAoB;gBACpB,MAAM,gBAAgB,GAAG,CAAC,MAAM,aAAa,CAAC,OAAO,CACnD;oBACE,SAAS,EAAE,GAAG,CAAC,SAAS;iBACzB,EACD;oBACE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;iBACtB,CACF,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACrB,OAAO,GAAG,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC;gBACnE,GAAG,EAAE,kBAAkB,EAAE;gBACzB,OAAO,EAAE,IAAI,IAAI,EAAE;gBACnB,IAAI,EAAE,EAAE;gBACR,GAAG,GAAG;gBACN,OAAO;aACR,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YAE3F,MAAM,IAAI,CAAC,mBAAmB,EAAE;gBAC9B,YAAY;aACb,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,cAAsB,EAAE,EAAE;YACvC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAEtD,MAAM,iBAAiB,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YAEvD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE9D,MAAM,IAAI,CAAC,sBAAsB,EAAE;gBACjC,cAAc;aACf,CAAC,CAAC;YAEH,OAAO,aAAa,CAAC,YAAY,CAAC;QACpC,CAAC;QAED,gBAAgB,EAAE,KAAK,EAAE,EACvB,SAAS,EACT,kBAAkB,EAClB,uBAAuB,GAKxB,EAAmB,EAAE;YACpB,MAAM,QAAQ,GAAiC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAE9E,IAAI,CAAC,SAAS,IAAI,kBAAkB,EAAE,CAAC;gBACrC,QAAQ,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;YACpD,CAAC;YAED,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,QAAQ,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;YACnD,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAE1D,MAAM,iBAAiB,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAErE,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAE/D,MAAM,OAAO,CAAC,GAAG,CACf,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAClC,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,iBAAiB;aAClB,CAAC,CACH,CACF,CAAC;YAEF,OAAO,aAAa,CAAC,YAAY,CAAC;QACpC,CAAC;QAED,0FAA0F;QAC1F,MAAM,EAAE,KAAK,EAAE,cAAsB,EAAE,GAA0B,EAAyB,EAAE;YAC1F,MAAM,QAAQ,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;YAC/B,OAAO,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,EACxB,QAAQ,GAMT,EAAgC,EAAE;YACjC,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE;gBACjD,MAAM,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE;oBAClE,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,GAAG,CAAC;wBACpB,OAAO,EAAE,IAAI,IAAI,EAAE;qBACpB;iBACF,CAAC,CAAC;gBAEH,OAAO,cAAc,CAAC;YACxB,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,CAC5C;gBACE,GAAG,EAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE;aACrC,EACD,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CACzB,CAAC,OAAO,EAAE,CAAC;YAEZ,MAAM,IAAI,CAAC,uBAAuB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;YAEvD,OAAO,aAAa,CAAC;QACvB,CAAC;QAED;;WAEG;QAEH,KAAK,EAAE;YACL,UAAU;YACV,cAAc,EAAE,KAAK,EACnB,EAAE,cAAc,EAAoC,EACpD,OAA6B,EACK,EAAE;gBACpC,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YACvE,CAAC;YAED,sBAAsB,EAAE,KAAK,EAAE,EAC7B,cAAc,EACd,MAAM,GAIP,EAA6B,EAAE;gBAC9B,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7C,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAClC,iBAAiB,EACjB,EAAE,cAAc,EAAE,EAClB,YAAY,CACb,CAAC;gBAEF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,YAAY;YACZ,gBAAgB,EAAE,KAAK,EACrB,cAAsB,EACtB,KAAsD,EACpB,EAAE;gBACpC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,CAC/C,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,CAC3D,CACF,CAAC;gBAEF,OAAO,UAAU,CAAC;YACpB,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ProductPriceRate } from '../db/ProductPriceRates.js';
|
|
2
|
-
import {
|
|
3
|
-
import { Product, ProductConfiguration } from '../db/ProductsCollection.js';
|
|
2
|
+
import { Product, ProductConfiguration, ProductPrice, ProductPriceRange } from '../db/ProductsCollection.js';
|
|
4
3
|
export declare const getDecimals: (originDecimals: any) => any;
|
|
5
4
|
export declare const normalizeRate: (baseCurrency: {
|
|
6
5
|
decimals?: number;
|
|
@@ -14,5 +13,57 @@ export declare const configureProductPricesModule: ({ proxyProducts, db, }: {
|
|
|
14
13
|
includeInactive?: boolean;
|
|
15
14
|
}) => Promise<Array<Product>>;
|
|
16
15
|
db: any;
|
|
17
|
-
}) =>
|
|
16
|
+
}) => {
|
|
17
|
+
price: (product: Product, { country: countryCode, currency: currencyCode, quantity, }: {
|
|
18
|
+
country: string;
|
|
19
|
+
currency?: string;
|
|
20
|
+
quantity?: number;
|
|
21
|
+
}) => Promise<ProductPrice>;
|
|
22
|
+
priceRange: (params: {
|
|
23
|
+
productId: string;
|
|
24
|
+
prices: Array<ProductPrice>;
|
|
25
|
+
}) => {
|
|
26
|
+
minPrice: ProductPrice;
|
|
27
|
+
maxPrice: ProductPrice;
|
|
28
|
+
};
|
|
29
|
+
catalogPrices(product: Product): Promise<Array<ProductPrice>>;
|
|
30
|
+
catalogPriceRange: (product: Product, { quantity, vectors, includeInactive, country, currency, }: {
|
|
31
|
+
country: string;
|
|
32
|
+
currency: string;
|
|
33
|
+
includeInactive?: boolean;
|
|
34
|
+
quantity?: number;
|
|
35
|
+
vectors: Array<ProductConfiguration>;
|
|
36
|
+
}) => Promise<ProductPriceRange>;
|
|
37
|
+
catalogPricesLeveled: (product: Product, { currency: currencyCode, country: countryCode }: {
|
|
38
|
+
currency: string;
|
|
39
|
+
country: string;
|
|
40
|
+
}) => Promise<Array<{
|
|
41
|
+
minQuantity: number;
|
|
42
|
+
maxQuantity: number;
|
|
43
|
+
price: ProductPrice;
|
|
44
|
+
}>>;
|
|
45
|
+
rates: {
|
|
46
|
+
getRate: (baseCurrency: {
|
|
47
|
+
isoCode: string;
|
|
48
|
+
decimals?: number;
|
|
49
|
+
}, quoteCurrency: {
|
|
50
|
+
isoCode: string;
|
|
51
|
+
decimals?: number;
|
|
52
|
+
}, referenceDate?: Date) => Promise<{
|
|
53
|
+
rate: number;
|
|
54
|
+
expiresAt: Date;
|
|
55
|
+
} | null>;
|
|
56
|
+
getRateRange: (baseCurrency: {
|
|
57
|
+
isoCode: string;
|
|
58
|
+
decimals?: number;
|
|
59
|
+
}, quoteCurrency: {
|
|
60
|
+
isoCode: string;
|
|
61
|
+
decimals?: number;
|
|
62
|
+
}, referenceDate?: Date) => Promise<{
|
|
63
|
+
min: number;
|
|
64
|
+
max: number;
|
|
65
|
+
} | null>;
|
|
66
|
+
updateRates: (rates: Array<ProductPriceRate>) => Promise<boolean>;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
18
69
|
//# sourceMappingURL=configureProductPrices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProductPrices.d.ts","sourceRoot":"","sources":["../../src/module/configureProductPrices.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,4BAA4B,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"configureProductPrices.d.ts","sourceRoot":"","sources":["../../src/module/configureProductPrices.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,4BAA4B,CAAC;AACjF,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,WAAW,8BAUvB,CAAC;AAEF,eAAO,MAAM,aAAa,iBACV;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,iBACc;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,cACW,gBAAgB,QAY7B,CAAC;AAEF,eAAO,MAAM,4BAA4B,2BAGtC;IACD,aAAa,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,EACpC,OAAO,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,KACnC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,EAAE,EAAE,GAAG,CAAC;CACT;qBAEY,OAAO,+DAKb;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAC3D,OAAO,CAAC,YAAY,CAAC;;;;;;;;2BA6BO,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;iCAKxD,OAAO,8DAOb;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACtC,KACA,OAAO,CAAC,iBAAiB,CAAC;oCA+BlB,OAAO,oDACkC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KACtF,OAAO,CACR,KAAK,CAAC;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,YAAY,CAAC;KACrB,CAAC,CACH;;gCA+BiB;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,iBACc;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,kBACc,IAAI,KAClB,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;qCAyBpC;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,iBACc;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,kBACc,IAAI,KAClB,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;6BA+BpB,KAAK,CAAC,gBAAgB,CAAC,KAAG,OAAO,CAAC,OAAO,CAAC;;CA8C1E,CAAC"}
|
|
@@ -26,7 +26,7 @@ export const normalizeRate = (baseCurrency, quoteCurrency, rateRecord) => {
|
|
|
26
26
|
return rate;
|
|
27
27
|
};
|
|
28
28
|
export const configureProductPricesModule = ({ proxyProducts, db, }) => {
|
|
29
|
-
const catalogPrice = async (product, { country: countryCode, currency: currencyCode, quantity = 1 }) => {
|
|
29
|
+
const catalogPrice = async (product, { country: countryCode, currency: currencyCode, quantity = 1, }) => {
|
|
30
30
|
const pricing = getPriceLevels({
|
|
31
31
|
product,
|
|
32
32
|
currencyCode,
|
|
@@ -52,7 +52,7 @@ export const configureProductPricesModule = ({ proxyProducts, db, }) => {
|
|
|
52
52
|
async catalogPrices(product) {
|
|
53
53
|
return (product.commerce && product.commerce.pricing) || [];
|
|
54
54
|
},
|
|
55
|
-
catalogPriceRange: async (product, { quantity = 0, vectors = [], includeInactive = false, country, currency }) => {
|
|
55
|
+
catalogPriceRange: async (product, { quantity = 0, vectors = [], includeInactive = false, country, currency, }) => {
|
|
56
56
|
const products = await proxyProducts(product, vectors, {
|
|
57
57
|
includeInactive,
|
|
58
58
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProductPrices.js","sourceRoot":"","sources":["../../src/module/configureProductPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAoB,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"configureProductPrices.js","sourceRoot":"","sources":["../../src/module/configureProductPrices.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,6 @@ import { ModuleInput } from '@unchainedshop/mongodb';
|
|
|
2
2
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
3
3
|
import { SortOption } from '@unchainedshop/utils';
|
|
4
4
|
import { ProductReview, ProductReviewVoteType, ProductVote } from '../db/ProductReviewsCollection.js';
|
|
5
|
-
export declare const ProductReviewVoteTypes: {
|
|
6
|
-
UPVOTE: string;
|
|
7
|
-
DOWNVOTE: string;
|
|
8
|
-
REPORT: string;
|
|
9
|
-
};
|
|
10
5
|
export type ProductReviewQuery = {
|
|
11
6
|
productId?: string;
|
|
12
7
|
authorId?: string;
|
|
@@ -20,33 +15,32 @@ export type ProductReviewQuery = {
|
|
|
20
15
|
start?: Date;
|
|
21
16
|
};
|
|
22
17
|
};
|
|
23
|
-
export
|
|
24
|
-
findProductReview: (
|
|
18
|
+
export declare const configureProductReviewsModule: ({ db }: ModuleInput<Record<string, never>>) => Promise<{
|
|
19
|
+
findProductReview: ({ productReviewId, }: {
|
|
25
20
|
productReviewId: string;
|
|
26
21
|
}) => Promise<ProductReview>;
|
|
27
|
-
findProductReviews: (query: ProductReviewQuery & {
|
|
22
|
+
findProductReviews: ({ offset, limit, sort, ...query }: ProductReviewQuery & {
|
|
28
23
|
limit?: number;
|
|
29
24
|
offset?: number;
|
|
30
25
|
sort?: Array<SortOption>;
|
|
31
26
|
}) => Promise<Array<ProductReview>>;
|
|
32
27
|
count: (query: ProductReviewQuery) => Promise<number>;
|
|
33
|
-
reviewExists: (
|
|
28
|
+
reviewExists: ({ productReviewId }: {
|
|
34
29
|
productReviewId: string;
|
|
35
30
|
}) => Promise<boolean>;
|
|
36
31
|
create: (doc: ProductReview) => Promise<ProductReview>;
|
|
37
|
-
delete: (
|
|
32
|
+
delete: (productReviewId: string) => Promise<number>;
|
|
38
33
|
deleteMany: (selector: mongodb.Filter<ProductReview>) => Promise<number>;
|
|
39
|
-
update: (productReviewId: string, doc: ProductReview) => Promise<ProductReview>;
|
|
34
|
+
update: (productReviewId: string, doc: Partial<ProductReview>) => Promise<ProductReview>;
|
|
40
35
|
votes: {
|
|
41
|
-
userIdsThatVoted: (productReview: ProductReview,
|
|
36
|
+
userIdsThatVoted: (productReview: ProductReview, { type }: {
|
|
42
37
|
type: ProductReviewVoteType;
|
|
43
38
|
}) => Array<string>;
|
|
44
|
-
ownVotes: (productReview: ProductReview,
|
|
39
|
+
ownVotes: (productReview: ProductReview, { userId: ownUserId }: {
|
|
45
40
|
userId: string;
|
|
46
41
|
}) => Array<ProductVote>;
|
|
47
|
-
addVote: (productReview: ProductReview,
|
|
48
|
-
removeVote: (productReviewId: string,
|
|
42
|
+
addVote: (productReview: ProductReview, { userId, type, meta }: ProductVote) => Promise<ProductReview>;
|
|
43
|
+
removeVote: (productReviewId: string, { userId, type }: ProductVote) => Promise<mongodb.WithId<ProductReview>>;
|
|
49
44
|
};
|
|
50
|
-
}
|
|
51
|
-
export declare const configureProductReviewsModule: ({ db, }: ModuleInput<Record<string, never>>) => Promise<ProductReviewsModule>;
|
|
45
|
+
}>;
|
|
52
46
|
//# sourceMappingURL=configureProductReviewsModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProductReviewsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureProductReviewsModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAGL,OAAO,EAER,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,aAAa,EAEb,qBAAqB,EACrB,WAAW,EACZ,MAAM,mCAAmC,CAAC;AAE3C,
|
|
1
|
+
{"version":3,"file":"configureProductReviewsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureProductReviewsModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAGL,OAAO,EAER,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,aAAa,EAEb,qBAAqB,EACrB,WAAW,EACZ,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;IACvC,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;CACxC,CAAC;AAkDF,eAAO,MAAM,6BAA6B,WAAkB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;8CAiBvF;QACD,eAAe,EAAE,MAAM,CAAC;KACzB,KAAG,OAAO,CAAC,aAAa,CAAC;4DAOvB,kBAAkB,GAAG;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;KAC1B,KAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;mBAYZ,kBAAkB,KAAG,OAAO,CAAC,MAAM,CAAC;wCAIf;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,OAAO,CAAC;kBAUpE,aAAa,KAAG,OAAO,CAAC,aAAa,CAAC;8BAgB1B,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;2BAiB3B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;8BAkB5C,MAAM,OAAO,OAAO,CAAC,aAAa,CAAC,KAAG,OAAO,CAAC,aAAa,CAAC;;0CAnH/E,aAAa,YACa;YAAE,IAAI,EAAE,qBAAqB,CAAA;SAAE,KACvE,KAAK,CAAC,MAAM,CAAC;kCAqIO,aAAa,yBACL;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KACxC,KAAK,CAAC,WAAW,CAAC;iCAKJ,aAAa,0BACoD,WAAW,KAC1F,OAAO,CAAC,aAAa,CAAC;sCA+CN,MAAM,oBACmD,WAAW;;EAsB5F,CAAC"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import { emit, registerEvents } from '@unchainedshop/events';
|
|
2
2
|
import { generateDbFilterById, buildSortOptions, generateDbObjectId, } from '@unchainedshop/mongodb';
|
|
3
3
|
import { SortDirection } from '@unchainedshop/utils';
|
|
4
|
-
import { ProductReviewsCollection, } from '../db/ProductReviewsCollection.js';
|
|
5
|
-
export const ProductReviewVoteTypes = {
|
|
6
|
-
UPVOTE: 'UPVOTE',
|
|
7
|
-
DOWNVOTE: 'DOWNVOTE',
|
|
8
|
-
REPORT: 'REPORT',
|
|
9
|
-
};
|
|
4
|
+
import { ProductReviewsCollection, ProductReviewVoteType, } from '../db/ProductReviewsCollection.js';
|
|
10
5
|
const PRODUCT_REVIEW_EVENTS = [
|
|
11
6
|
'PRODUCT_REVIEW_CREATE',
|
|
12
7
|
'PRODUCT_REMOVE_REVIEW',
|
|
@@ -35,12 +30,12 @@ const buildFindSelector = ({ productId, authorId, queryString, created, updated,
|
|
|
35
30
|
}
|
|
36
31
|
return selector;
|
|
37
32
|
};
|
|
38
|
-
const userIdsThatVoted = (productReview, { type =
|
|
33
|
+
const userIdsThatVoted = (productReview, { type = ProductReviewVoteType.UPVOTE }) => {
|
|
39
34
|
return (productReview.votes || [])
|
|
40
35
|
.filter(({ type: currentType }) => type === currentType)
|
|
41
36
|
.map(({ userId }) => userId);
|
|
42
37
|
};
|
|
43
|
-
export const configureProductReviewsModule = async ({ db
|
|
38
|
+
export const configureProductReviewsModule = async ({ db }) => {
|
|
44
39
|
registerEvents(PRODUCT_REVIEW_EVENTS);
|
|
45
40
|
const { ProductReviews } = await ProductReviewsCollection(db);
|
|
46
41
|
const removeVote = async (selector, { userId, type }) => {
|
|
@@ -52,7 +47,7 @@ export const configureProductReviewsModule = async ({ db, }) => {
|
|
|
52
47
|
};
|
|
53
48
|
return {
|
|
54
49
|
// Queries
|
|
55
|
-
findProductReview: async ({ productReviewId }) => ProductReviews.findOne(generateDbFilterById(productReviewId), {}),
|
|
50
|
+
findProductReview: async ({ productReviewId, }) => ProductReviews.findOne(generateDbFilterById(productReviewId), {}),
|
|
56
51
|
findProductReviews: async ({ offset, limit, sort, ...query }) => {
|
|
57
52
|
const reviewsList = ProductReviews.find(buildFindSelector(query), {
|
|
58
53
|
skip: offset,
|
|
@@ -117,23 +112,23 @@ export const configureProductReviewsModule = async ({ db, }) => {
|
|
|
117
112
|
ownVotes: (productReview, { userId: ownUserId }) => {
|
|
118
113
|
return (productReview.votes || []).filter(({ userId }) => userId === ownUserId);
|
|
119
114
|
},
|
|
120
|
-
addVote: async (productReview, { userId, type =
|
|
115
|
+
addVote: async (productReview, { userId, type = ProductReviewVoteType.UPVOTE, meta }) => {
|
|
121
116
|
if (!userIdsThatVoted(productReview, { type }).includes(userId)) {
|
|
122
117
|
const selector = generateDbFilterById(productReview._id, {
|
|
123
118
|
deleted: null,
|
|
124
119
|
});
|
|
125
|
-
if (type ===
|
|
120
|
+
if (type === ProductReviewVoteType.UPVOTE) {
|
|
126
121
|
// if this is an upvote, remove the downvote first
|
|
127
122
|
await removeVote(selector, {
|
|
128
123
|
userId,
|
|
129
|
-
type:
|
|
124
|
+
type: ProductReviewVoteType.DOWNVOTE,
|
|
130
125
|
});
|
|
131
126
|
}
|
|
132
|
-
if (type ===
|
|
127
|
+
if (type === ProductReviewVoteType.DOWNVOTE) {
|
|
133
128
|
// if this is a downvote, remove the upvote first
|
|
134
129
|
await removeVote(selector, {
|
|
135
130
|
userId,
|
|
136
|
-
type:
|
|
131
|
+
type: ProductReviewVoteType.UPVOTE,
|
|
137
132
|
});
|
|
138
133
|
}
|
|
139
134
|
const updatedProductReview = await ProductReviews.findOneAndUpdate(selector, {
|
|
@@ -153,7 +148,7 @@ export const configureProductReviewsModule = async ({ db, }) => {
|
|
|
153
148
|
}
|
|
154
149
|
return null;
|
|
155
150
|
},
|
|
156
|
-
removeVote: async (productReviewId, { userId, type =
|
|
151
|
+
removeVote: async (productReviewId, { userId, type = ProductReviewVoteType.UPVOTE }) => {
|
|
157
152
|
const selector = generateDbFilterById(productReviewId, {
|
|
158
153
|
deleted: null,
|
|
159
154
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProductReviewsModule.js","sourceRoot":"","sources":["../../src/module/configureProductReviewsModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAEhB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAc,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAEL,wBAAwB,
|
|
1
|
+
{"version":3,"file":"configureProductReviewsModule.js","sourceRoot":"","sources":["../../src/module/configureProductReviewsModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
2
|
-
import { ProductsModule } from '../products-index.js';
|
|
3
2
|
import { Product, ProductText } from '../db/ProductsCollection.js';
|
|
4
3
|
export declare const configureProductTextsModule: ({ Products, ProductTexts, }: {
|
|
5
4
|
Products: mongodb.Collection<Product>;
|
|
6
5
|
ProductTexts: mongodb.Collection<ProductText>;
|
|
7
|
-
}) =>
|
|
6
|
+
}) => {
|
|
7
|
+
findTexts: (query: mongodb.Filter<ProductText>, options?: mongodb.FindOptions) => Promise<Array<ProductText>>;
|
|
8
|
+
findLocalizedText: ({ productId, locale, }: {
|
|
9
|
+
productId: string;
|
|
10
|
+
locale?: string;
|
|
11
|
+
}) => Promise<ProductText>;
|
|
12
|
+
updateTexts: (productId: string, texts: Array<Omit<ProductText, "productId">>) => Promise<Array<ProductText>>;
|
|
13
|
+
makeSlug: ({ slug, title, productId, }: {
|
|
14
|
+
slug?: string;
|
|
15
|
+
title: string;
|
|
16
|
+
productId: string;
|
|
17
|
+
}) => Promise<string>;
|
|
18
|
+
deleteMany: ({ productId, excludedProductIds, }: {
|
|
19
|
+
productId?: string;
|
|
20
|
+
excludedProductIds?: string[];
|
|
21
|
+
}) => Promise<number>;
|
|
22
|
+
};
|
|
8
23
|
//# sourceMappingURL=configureProductTextsModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProductTextsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureProductTextsModule.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAIR,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"configureProductTextsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureProductTextsModule.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAIR,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAInE,eAAO,MAAM,2BAA2B,gCAGrC;IACD,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;CAC/C;uBA2GY,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YACxB,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gDAS3B;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAG,OAAO,CAAC,WAAW,CAAC;6BAUX,MAAM,SACV,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,KAC3C,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;4CA9H7B;QACD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CAAC,MAAM,CAAC;qDAsId;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC/B,KAAG,OAAO,CAAC,MAAM,CAAC;CAWtB,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { productsSettings } from '../products-settings.js';
|
|
|
5
5
|
const PRODUCT_TEXT_EVENTS = ['PRODUCT_UPDATE_TEXT'];
|
|
6
6
|
export const configureProductTextsModule = ({ Products, ProductTexts, }) => {
|
|
7
7
|
registerEvents(PRODUCT_TEXT_EVENTS);
|
|
8
|
-
const makeSlug = async ({ slug, title, productId }) => {
|
|
8
|
+
const makeSlug = async ({ slug, title, productId, }) => {
|
|
9
9
|
const checkSlugIsUnique = async (newPotentialSlug) => {
|
|
10
10
|
return ((await ProductTexts.countDocuments({
|
|
11
11
|
productId: { $ne: productId },
|
|
@@ -79,11 +79,11 @@ export const configureProductTextsModule = ({ Products, ProductTexts, }) => {
|
|
|
79
79
|
};
|
|
80
80
|
return {
|
|
81
81
|
// Queries
|
|
82
|
-
findTexts: async (
|
|
83
|
-
const texts = ProductTexts.find(
|
|
82
|
+
findTexts: async (query, options) => {
|
|
83
|
+
const texts = ProductTexts.find(query, options);
|
|
84
84
|
return texts.toArray();
|
|
85
85
|
},
|
|
86
|
-
findLocalizedText: async ({ productId, locale }) => {
|
|
86
|
+
findLocalizedText: async ({ productId, locale, }) => {
|
|
87
87
|
const parsedLocale = new Intl.Locale(locale);
|
|
88
88
|
const text = await findLocalizedText(ProductTexts, { productId }, parsedLocale);
|
|
89
89
|
return text;
|
|
@@ -94,7 +94,7 @@ export const configureProductTextsModule = ({ Products, ProductTexts, }) => {
|
|
|
94
94
|
return productTexts;
|
|
95
95
|
},
|
|
96
96
|
makeSlug,
|
|
97
|
-
deleteMany: async ({ productId, excludedProductIds }) => {
|
|
97
|
+
deleteMany: async ({ productId, excludedProductIds, }) => {
|
|
98
98
|
const selector = {};
|
|
99
99
|
if (productId) {
|
|
100
100
|
selector.productId = productId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProductTextsModule.js","sourceRoot":"","sources":["../../src/module/configureProductTextsModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAEL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"configureProductTextsModule.js","sourceRoot":"","sources":["../../src/module/configureProductTextsModule.ts"],"names":[],"mappings":"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"}
|