@unchainedshop/core-orders 4.0.0-rc.13 → 4.0.0-rc.14
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/configureOrdersModule-queries.d.ts +8 -4
- package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
- package/lib/module/configureOrdersModule-queries.js +1 -85
- package/lib/module/configureOrdersModule-queries.js.map +1 -1
- package/package.json +4 -4
- package/src/module/configureOrdersModule-queries.ts +9 -91
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SortOption
|
|
1
|
+
import { SortOption } from '@unchainedshop/utils';
|
|
2
2
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
3
3
|
import { Order, OrderQuery } from '../db/OrdersCollection.js';
|
|
4
4
|
import { Document } from 'mongodb';
|
|
@@ -9,6 +9,13 @@ export interface OrderReport {
|
|
|
9
9
|
confirmCount: number;
|
|
10
10
|
fulfillCount: number;
|
|
11
11
|
}
|
|
12
|
+
export interface OrderStatisticsRecord {
|
|
13
|
+
date: string;
|
|
14
|
+
total: {
|
|
15
|
+
amount: number;
|
|
16
|
+
currency: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
12
19
|
interface OrderAggregateParams {
|
|
13
20
|
match?: Record<string, any>;
|
|
14
21
|
matchAfterGroup?: Record<string, any>;
|
|
@@ -39,9 +46,6 @@ export declare const configureOrdersModuleQueries: ({ Orders }: {
|
|
|
39
46
|
offset?: number;
|
|
40
47
|
sort?: SortOption[];
|
|
41
48
|
}, options?: mongodb.FindOptions) => Promise<Order[]>;
|
|
42
|
-
getReport: (params: {
|
|
43
|
-
dateRange?: DateFilterInput;
|
|
44
|
-
}) => Promise<OrderReport>;
|
|
45
49
|
orderExists: ({ orderId }: {
|
|
46
50
|
orderId: string;
|
|
47
51
|
}) => Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureOrdersModule-queries.d.ts","sourceRoot":"","sources":["../../src/module/configureOrdersModule-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"configureOrdersModule-queries.d.ts","sourceRoot":"","sources":["../../src/module/configureOrdersModule-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAA0C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEzF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,4BAA4B,GAAI,YAAY;IAAE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;CAAE;oBAE1E,KAAK;kDAQlB;QACD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB,KAAG,OAAO,CAAC,KAAK,CAAC;mBAmBG,UAAU,KAAG,OAAO,CAAC,MAAM,CAAC;2CAQ5C;QACD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,YACS,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC;;iEAyBZ,UAAU,GAAG;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;KACrB,YACS,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,EAAE,CAAC;+BAmBc;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,OAAO,CAAC;oFAcpE,oBAAoB,KAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAgBhD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
import { SortDirection } from '@unchainedshop/utils';
|
|
2
2
|
import { generateDbFilterById, buildSortOptions } from '@unchainedshop/mongodb';
|
|
3
3
|
import buildFindSelector from './buildFindSelector.js';
|
|
4
|
-
const normalizeOrderAggregateResult = (data = {}) => {
|
|
5
|
-
const statusToFieldMap = {
|
|
6
|
-
newCount: 0,
|
|
7
|
-
checkoutCount: 0,
|
|
8
|
-
rejectCount: 0,
|
|
9
|
-
confirmCount: 0,
|
|
10
|
-
fulfillCount: 0,
|
|
11
|
-
};
|
|
12
|
-
Object.entries(data).forEach(([key, value]) => {
|
|
13
|
-
statusToFieldMap[key] = value;
|
|
14
|
-
});
|
|
15
|
-
return statusToFieldMap;
|
|
16
|
-
};
|
|
17
4
|
export const configureOrdersModuleQueries = ({ Orders }) => {
|
|
18
5
|
return {
|
|
19
6
|
isCart: (order) => {
|
|
@@ -69,77 +56,6 @@ export const configureOrdersModuleQueries = ({ Orders }) => {
|
|
|
69
56
|
}
|
|
70
57
|
return Orders.find(selector, findOptions).toArray();
|
|
71
58
|
},
|
|
72
|
-
getReport: async (params) => {
|
|
73
|
-
const { dateRange } = params || {};
|
|
74
|
-
const selector = {};
|
|
75
|
-
if (dateRange?.end || dateRange?.start) {
|
|
76
|
-
if (dateRange?.start) {
|
|
77
|
-
const fromDate = new Date(dateRange?.start);
|
|
78
|
-
selector.$gte = fromDate;
|
|
79
|
-
}
|
|
80
|
-
if (dateRange?.end) {
|
|
81
|
-
const toDate = new Date(dateRange?.end);
|
|
82
|
-
selector.$lte = toDate;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
const pipeline = [
|
|
86
|
-
{
|
|
87
|
-
$facet: {
|
|
88
|
-
checkoutCount: [
|
|
89
|
-
{
|
|
90
|
-
$match: {
|
|
91
|
-
ordered: selector,
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
{ $count: 'count' },
|
|
95
|
-
],
|
|
96
|
-
fulfillCount: [
|
|
97
|
-
{
|
|
98
|
-
$match: {
|
|
99
|
-
fullfilled: selector,
|
|
100
|
-
},
|
|
101
|
-
},
|
|
102
|
-
{ $count: 'count' },
|
|
103
|
-
],
|
|
104
|
-
rejectCount: [
|
|
105
|
-
{
|
|
106
|
-
$match: {
|
|
107
|
-
rejected: selector,
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
{ $count: 'count' },
|
|
111
|
-
],
|
|
112
|
-
newCount: [
|
|
113
|
-
{
|
|
114
|
-
$match: {
|
|
115
|
-
created: selector,
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
{ $count: 'count' },
|
|
119
|
-
],
|
|
120
|
-
confirmCount: [
|
|
121
|
-
{
|
|
122
|
-
$match: {
|
|
123
|
-
confirmed: selector,
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
{ $count: 'count' },
|
|
127
|
-
],
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
$project: {
|
|
132
|
-
checkoutCount: { $arrayElemAt: ['$checkoutCount.count', 0] },
|
|
133
|
-
fulfillCount: { $arrayElemAt: ['$fulfillCount.count', 0] },
|
|
134
|
-
rejectCount: { $arrayElemAt: ['$rejectCount.count', 0] },
|
|
135
|
-
newCount: { $arrayElemAt: ['$newCount.count', 0] },
|
|
136
|
-
confirmCount: { $arrayElemAt: ['$confirmCount.count', 0] },
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
];
|
|
140
|
-
const [facetedResult] = await Orders.aggregate(pipeline).toArray();
|
|
141
|
-
return normalizeOrderAggregateResult(facetedResult);
|
|
142
|
-
},
|
|
143
59
|
orderExists: async ({ orderId }) => {
|
|
144
60
|
const orderCount = await Orders.countDocuments(generateDbFilterById(orderId), {
|
|
145
61
|
limit: 1,
|
|
@@ -163,7 +79,7 @@ export const configureOrdersModuleQueries = ({ Orders }) => {
|
|
|
163
79
|
stages.push({ $sort: sort });
|
|
164
80
|
if (typeof limit === 'number')
|
|
165
81
|
stages.push({ $limit: limit });
|
|
166
|
-
return Orders.aggregate(stages).toArray();
|
|
82
|
+
return Orders.aggregate(stages, { allowDiskUse: true }).toArray();
|
|
167
83
|
},
|
|
168
84
|
};
|
|
169
85
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureOrdersModule-queries.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"configureOrdersModule-queries.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-queries.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/core-orders",
|
|
3
|
-
"version": "4.0.0-rc.
|
|
3
|
+
"version": "4.0.0-rc.14",
|
|
4
4
|
"main": "lib/orders-index.js",
|
|
5
5
|
"types": "lib/orders-index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@kontsedal/locco": "0.1.0",
|
|
35
|
-
"@unchainedshop/events": "^4.0.0-rc.
|
|
36
|
-
"@unchainedshop/logger": "^4.0.0-rc.
|
|
37
|
-
"@unchainedshop/utils": "^4.0.0-rc.
|
|
35
|
+
"@unchainedshop/events": "^4.0.0-rc.14",
|
|
36
|
+
"@unchainedshop/logger": "^4.0.0-rc.14",
|
|
37
|
+
"@unchainedshop/utils": "^4.0.0-rc.14"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/node": "^24.0.13",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SortDirection, SortOption
|
|
1
|
+
import { SortDirection, SortOption } from '@unchainedshop/utils';
|
|
2
2
|
import { generateDbFilterById, buildSortOptions, mongodb } from '@unchainedshop/mongodb';
|
|
3
3
|
import buildFindSelector from './buildFindSelector.js';
|
|
4
4
|
import { Order, OrderQuery } from '../db/OrdersCollection.js';
|
|
@@ -11,6 +11,13 @@ export interface OrderReport {
|
|
|
11
11
|
confirmCount: number;
|
|
12
12
|
fulfillCount: number;
|
|
13
13
|
}
|
|
14
|
+
export interface OrderStatisticsRecord {
|
|
15
|
+
date: string;
|
|
16
|
+
total: {
|
|
17
|
+
amount: number;
|
|
18
|
+
currency: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
14
21
|
|
|
15
22
|
interface OrderAggregateParams {
|
|
16
23
|
match?: Record<string, any>;
|
|
@@ -23,21 +30,6 @@ interface OrderAggregateParams {
|
|
|
23
30
|
pipeline?: any[];
|
|
24
31
|
}
|
|
25
32
|
|
|
26
|
-
const normalizeOrderAggregateResult = (data = {}): OrderReport => {
|
|
27
|
-
const statusToFieldMap = {
|
|
28
|
-
newCount: 0,
|
|
29
|
-
checkoutCount: 0,
|
|
30
|
-
rejectCount: 0,
|
|
31
|
-
confirmCount: 0,
|
|
32
|
-
fulfillCount: 0,
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
Object.entries(data).forEach(([key, value]) => {
|
|
36
|
-
statusToFieldMap[key] = value;
|
|
37
|
-
});
|
|
38
|
-
return statusToFieldMap;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
33
|
export const configureOrdersModuleQueries = ({ Orders }: { Orders: mongodb.Collection<Order> }) => {
|
|
42
34
|
return {
|
|
43
35
|
isCart: (order: Order) => {
|
|
@@ -134,80 +126,6 @@ export const configureOrdersModuleQueries = ({ Orders }: { Orders: mongodb.Colle
|
|
|
134
126
|
|
|
135
127
|
return Orders.find(selector, findOptions).toArray();
|
|
136
128
|
},
|
|
137
|
-
|
|
138
|
-
getReport: async (params: { dateRange?: DateFilterInput }): Promise<OrderReport> => {
|
|
139
|
-
const { dateRange } = params || {};
|
|
140
|
-
const selector: any = {};
|
|
141
|
-
if (dateRange?.end || dateRange?.start) {
|
|
142
|
-
if (dateRange?.start) {
|
|
143
|
-
const fromDate = new Date(dateRange?.start);
|
|
144
|
-
selector.$gte = fromDate;
|
|
145
|
-
}
|
|
146
|
-
if (dateRange?.end) {
|
|
147
|
-
const toDate = new Date(dateRange?.end);
|
|
148
|
-
selector.$lte = toDate;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const pipeline = [
|
|
153
|
-
{
|
|
154
|
-
$facet: {
|
|
155
|
-
checkoutCount: [
|
|
156
|
-
{
|
|
157
|
-
$match: {
|
|
158
|
-
ordered: selector,
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
{ $count: 'count' },
|
|
162
|
-
],
|
|
163
|
-
fulfillCount: [
|
|
164
|
-
{
|
|
165
|
-
$match: {
|
|
166
|
-
fullfilled: selector,
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
{ $count: 'count' },
|
|
170
|
-
],
|
|
171
|
-
rejectCount: [
|
|
172
|
-
{
|
|
173
|
-
$match: {
|
|
174
|
-
rejected: selector,
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
{ $count: 'count' },
|
|
178
|
-
],
|
|
179
|
-
newCount: [
|
|
180
|
-
{
|
|
181
|
-
$match: {
|
|
182
|
-
created: selector,
|
|
183
|
-
},
|
|
184
|
-
},
|
|
185
|
-
{ $count: 'count' },
|
|
186
|
-
],
|
|
187
|
-
confirmCount: [
|
|
188
|
-
{
|
|
189
|
-
$match: {
|
|
190
|
-
confirmed: selector,
|
|
191
|
-
},
|
|
192
|
-
},
|
|
193
|
-
{ $count: 'count' },
|
|
194
|
-
],
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
$project: {
|
|
199
|
-
checkoutCount: { $arrayElemAt: ['$checkoutCount.count', 0] },
|
|
200
|
-
fulfillCount: { $arrayElemAt: ['$fulfillCount.count', 0] },
|
|
201
|
-
rejectCount: { $arrayElemAt: ['$rejectCount.count', 0] },
|
|
202
|
-
newCount: { $arrayElemAt: ['$newCount.count', 0] },
|
|
203
|
-
confirmCount: { $arrayElemAt: ['$confirmCount.count', 0] },
|
|
204
|
-
},
|
|
205
|
-
},
|
|
206
|
-
];
|
|
207
|
-
const [facetedResult] = await Orders.aggregate(pipeline).toArray();
|
|
208
|
-
return normalizeOrderAggregateResult(facetedResult);
|
|
209
|
-
},
|
|
210
|
-
|
|
211
129
|
orderExists: async ({ orderId }: { orderId: string }): Promise<boolean> => {
|
|
212
130
|
const orderCount = await Orders.countDocuments(generateDbFilterById(orderId), {
|
|
213
131
|
limit: 1,
|
|
@@ -235,7 +153,7 @@ export const configureOrdersModuleQueries = ({ Orders }: { Orders: mongodb.Colle
|
|
|
235
153
|
if (sort) stages.push({ $sort: sort });
|
|
236
154
|
if (typeof limit === 'number') stages.push({ $limit: limit });
|
|
237
155
|
|
|
238
|
-
return Orders.aggregate(stages).toArray();
|
|
156
|
+
return Orders.aggregate(stages, { allowDiskUse: true }).toArray();
|
|
239
157
|
},
|
|
240
158
|
};
|
|
241
159
|
};
|