@unchainedshop/core-orders 3.0.0-alpha7 → 3.0.0-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/lib/db/OrderDeliveriesCollection.d.ts +21 -2
  2. package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
  3. package/lib/db/OrderDeliveriesCollection.js +6 -0
  4. package/lib/db/OrderDeliveriesCollection.js.map +1 -1
  5. package/lib/db/OrderDiscountsCollection.d.ts +16 -2
  6. package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
  7. package/lib/db/OrderDiscountsCollection.js +5 -0
  8. package/lib/db/OrderDiscountsCollection.js.map +1 -1
  9. package/lib/db/OrderPaymentsCollection.d.ts +22 -2
  10. package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
  11. package/lib/db/OrderPaymentsCollection.js +6 -0
  12. package/lib/db/OrderPaymentsCollection.js.map +1 -1
  13. package/lib/db/OrderPositionsCollection.d.ts +22 -2
  14. package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
  15. package/lib/db/OrderPositionsCollection.js.map +1 -1
  16. package/lib/db/OrdersCollection.d.ts +33 -2
  17. package/lib/db/OrdersCollection.d.ts.map +1 -1
  18. package/lib/db/OrdersCollection.js +8 -1
  19. package/lib/db/OrdersCollection.js.map +1 -1
  20. package/lib/director/OrderDiscountAdapter.d.ts +2 -2
  21. package/lib/director/OrderDiscountAdapter.d.ts.map +1 -1
  22. package/lib/director/OrderDiscountAdapter.js.map +1 -1
  23. package/lib/director/OrderDiscountDirector.d.ts +1 -1
  24. package/lib/director/OrderDiscountDirector.d.ts.map +1 -1
  25. package/lib/director/OrderDiscountDirector.js.map +1 -1
  26. package/lib/director/OrderPricingAdapter.d.ts +3 -3
  27. package/lib/director/OrderPricingAdapter.d.ts.map +1 -1
  28. package/lib/director/OrderPricingAdapter.js.map +1 -1
  29. package/lib/director/OrderPricingDirector.d.ts +1 -1
  30. package/lib/director/OrderPricingDirector.d.ts.map +1 -1
  31. package/lib/module/buildFindSelector.d.ts +5 -0
  32. package/lib/module/buildFindSelector.d.ts.map +1 -0
  33. package/lib/module/buildFindSelector.js +18 -0
  34. package/lib/module/buildFindSelector.js.map +1 -0
  35. package/lib/module/configureOrderDeliveriesModule.d.ts +14 -27
  36. package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
  37. package/lib/module/configureOrderDeliveriesModule.js +8 -69
  38. package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
  39. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts +24 -0
  40. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts.map +1 -0
  41. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js +101 -0
  42. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js.map +1 -0
  43. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts +36 -0
  44. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts.map +1 -0
  45. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js +162 -0
  46. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js.map +1 -0
  47. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts +23 -0
  48. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts.map +1 -0
  49. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js +97 -0
  50. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js.map +1 -0
  51. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts +37 -0
  52. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts.map +1 -0
  53. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js +166 -0
  54. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js.map +1 -0
  55. package/lib/module/configureOrderDiscountsModule.d.ts +17 -18
  56. package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
  57. package/lib/module/configureOrderDiscountsModule.js +34 -143
  58. package/lib/module/configureOrderDiscountsModule.js.map +1 -1
  59. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts +26 -0
  60. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts.map +1 -0
  61. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js +69 -0
  62. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js.map +1 -0
  63. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts +26 -0
  64. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts.map +1 -0
  65. package/lib/module/configureOrderDiscountsModule_BASE_55046.js +178 -0
  66. package/lib/module/configureOrderDiscountsModule_BASE_55046.js.map +1 -0
  67. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts +25 -0
  68. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts.map +1 -0
  69. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js +65 -0
  70. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js.map +1 -0
  71. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts +27 -0
  72. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts.map +1 -0
  73. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js +182 -0
  74. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js.map +1 -0
  75. package/lib/module/configureOrderPaymentsModule.d.ts +17 -37
  76. package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
  77. package/lib/module/configureOrderPaymentsModule.js +16 -124
  78. package/lib/module/configureOrderPaymentsModule.js.map +1 -1
  79. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts +32 -0
  80. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts.map +1 -0
  81. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js +135 -0
  82. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js.map +1 -0
  83. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts +32 -0
  84. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts.map +1 -0
  85. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js +135 -0
  86. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js.map +1 -0
  87. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts +51 -0
  88. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts.map +1 -0
  89. package/lib/module/configureOrderPaymentsModule_BASE_55464.js +243 -0
  90. package/lib/module/configureOrderPaymentsModule_BASE_55464.js.map +1 -0
  91. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts +51 -0
  92. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts.map +1 -0
  93. package/lib/module/configureOrderPaymentsModule_BASE_55877.js +243 -0
  94. package/lib/module/configureOrderPaymentsModule_BASE_55877.js.map +1 -0
  95. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts +31 -0
  96. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts.map +1 -0
  97. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js +131 -0
  98. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js.map +1 -0
  99. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts +31 -0
  100. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts.map +1 -0
  101. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js +131 -0
  102. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js.map +1 -0
  103. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts +52 -0
  104. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts.map +1 -0
  105. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js +247 -0
  106. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js.map +1 -0
  107. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts +52 -0
  108. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts.map +1 -0
  109. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js +247 -0
  110. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js.map +1 -0
  111. package/lib/module/configureOrderPositionsModule.d.ts +22 -41
  112. package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
  113. package/lib/module/configureOrderPositionsModule.js +22 -85
  114. package/lib/module/configureOrderPositionsModule.js.map +1 -1
  115. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts +44 -0
  116. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts.map +1 -0
  117. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js +138 -0
  118. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js.map +1 -0
  119. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts +60 -0
  120. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts.map +1 -0
  121. package/lib/module/configureOrderPositionsModule_BASE_56197.js +201 -0
  122. package/lib/module/configureOrderPositionsModule_BASE_56197.js.map +1 -0
  123. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts +43 -0
  124. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts.map +1 -0
  125. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js +134 -0
  126. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js.map +1 -0
  127. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts +61 -0
  128. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts.map +1 -0
  129. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js +205 -0
  130. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js.map +1 -0
  131. package/lib/module/configureOrdersModule-mutations.d.ts +5 -11
  132. package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
  133. package/lib/module/configureOrdersModule-mutations.js +11 -50
  134. package/lib/module/configureOrdersModule-mutations.js.map +1 -1
  135. package/lib/module/configureOrdersModule-processing.d.ts +4 -8
  136. package/lib/module/configureOrdersModule-processing.d.ts.map +1 -1
  137. package/lib/module/configureOrdersModule-processing.js +3 -1
  138. package/lib/module/configureOrdersModule-processing.js.map +1 -1
  139. package/lib/module/configureOrdersModule-queries.d.ts +18 -6
  140. package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
  141. package/lib/module/configureOrdersModule-queries.js +35 -22
  142. package/lib/module/configureOrdersModule-queries.js.map +1 -1
  143. package/lib/module/configureOrdersModule-transformations.d.ts +2 -3
  144. package/lib/module/configureOrdersModule-transformations.d.ts.map +1 -1
  145. package/lib/module/configureOrdersModule-transformations.js +3 -3
  146. package/lib/module/configureOrdersModule-transformations.js.map +1 -1
  147. package/lib/module/configureOrdersModule.d.ts +11 -8
  148. package/lib/module/configureOrdersModule.d.ts.map +1 -1
  149. package/lib/module/configureOrdersModule.js +133 -154
  150. package/lib/module/configureOrdersModule.js.map +1 -1
  151. package/lib/orders-index.d.ts +11 -8
  152. package/lib/orders-index.d.ts.map +1 -1
  153. package/lib/orders-index.js +11 -8
  154. package/lib/orders-index.js.map +1 -1
  155. package/lib/orders-settings.d.ts +4 -8
  156. package/lib/orders-settings.d.ts.map +1 -1
  157. package/lib/orders-settings.js.map +1 -1
  158. package/lib/types.d.ts +7 -22
  159. package/lib/types.d.ts.map +1 -1
  160. package/lib/types.js +0 -5
  161. package/lib/types.js.map +1 -1
  162. package/package.json +9 -12
  163. package/src/db/OrderDeliveriesCollection.ts +25 -2
  164. package/src/db/OrderDiscountsCollection.ts +18 -2
  165. package/src/db/OrderPaymentsCollection.ts +26 -2
  166. package/src/db/OrderPositionsCollection.ts +21 -2
  167. package/src/db/OrdersCollection.ts +44 -2
  168. package/src/module/buildFindSelector.test.ts +8 -8
  169. package/src/module/buildFindSelector.ts +24 -0
  170. package/src/module/configureOrderDeliveriesModule.ts +29 -172
  171. package/src/module/configureOrderDiscountsModule.ts +46 -213
  172. package/src/module/configureOrderPaymentsModule.ts +58 -266
  173. package/src/module/configureOrderPositionsModule.ts +57 -208
  174. package/src/module/configureOrdersModule-mutations.ts +13 -85
  175. package/src/module/configureOrdersModule-queries.ts +61 -29
  176. package/src/module/configureOrdersModule.ts +180 -264
  177. package/src/orders-index.ts +11 -10
  178. package/src/orders-settings.ts +5 -7
  179. package/tsconfig.json +5 -7
  180. package/lib/service/migrateOrderCartService.d.ts +0 -10
  181. package/lib/service/migrateOrderCartService.d.ts.map +0 -1
  182. package/lib/service/migrateOrderCartService.js +0 -32
  183. package/lib/service/migrateOrderCartService.js.map +0 -1
  184. package/lib/service/nextUserCartService.d.ts +0 -11
  185. package/lib/service/nextUserCartService.d.ts.map +0 -1
  186. package/lib/service/nextUserCartService.js +0 -34
  187. package/lib/service/nextUserCartService.js.map +0 -1
  188. package/lib/service/orderServices.d.ts +0 -8
  189. package/lib/service/orderServices.d.ts.map +0 -1
  190. package/lib/service/orderServices.js +0 -7
  191. package/lib/service/orderServices.js.map +0 -1
  192. package/src/db/OrderDiscountTrigger.ts +0 -4
  193. package/src/director/OrderDiscountAdapter.ts +0 -8
  194. package/src/director/OrderDiscountConfiguration.ts +0 -5
  195. package/src/director/OrderDiscountDirector.ts +0 -5
  196. package/src/director/OrderPricingAdapter.ts +0 -61
  197. package/src/director/OrderPricingDirector.ts +0 -72
  198. package/src/director/OrderPricingSheet.ts +0 -146
  199. package/src/module/configureOrdersModule-processing.ts +0 -508
  200. package/src/module/configureOrdersModule-transformations.ts +0 -171
  201. package/src/service/migrateOrderCartService.ts +0 -53
  202. package/src/service/nextUserCartService.ts +0 -54
  203. package/src/service/orderServices.ts +0 -12
  204. package/src/types.ts +0 -129
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderPaymentsModule_REMOTE_55464.js","sourceRoot":"","sources":["../../src/module/configureOrderPaymentsModule_REMOTE_55464.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { Order, OrderDiscount, OrderPayment, OrderPaymentStatus } from '../types.js';
3
+ import { OrderPricingDiscount } from '../director/OrderPricingDirector.js';
4
+ import type { IPaymentPricingSheet } from '@unchainedshop/core-payment';
5
+ export type OrderPaymentsModule = {
6
+ findOrderPayment: (params: {
7
+ orderPaymentId: string;
8
+ }, options?: mongodb.FindOptions) => Promise<OrderPayment>;
9
+ findOrderPaymentByContextData: (params: {
10
+ context: any;
11
+ }, options?: mongodb.FindOptions) => Promise<OrderPayment>;
12
+ countOrderPaymentsByContextData: (params: {
13
+ context: any;
14
+ }, options?: mongodb.FindOptions) => Promise<number>;
15
+ discounts: (orderPayment: OrderPayment, params: {
16
+ order: Order;
17
+ orderDiscount: OrderDiscount;
18
+ }, unchainedAPI: any) => Array<OrderPricingDiscount>;
19
+ isBlockingOrderConfirmation: (orderPayment: OrderPayment, unchainedAPI: any) => Promise<boolean>;
20
+ isBlockingOrderFullfillment: (orderPayment: OrderPayment) => boolean;
21
+ normalizedStatus: (orderPayment: OrderPayment) => string;
22
+ pricingSheet: (orderPayment: OrderPayment, currency: string, unchainedAPI: any) => IPaymentPricingSheet;
23
+ create: (doc: OrderPayment) => Promise<OrderPayment>;
24
+ cancel: (orderPayment: OrderPayment, paymentContext: {
25
+ transactionContext: any;
26
+ userId: string;
27
+ }, unchainedAPI: any) => Promise<OrderPayment>;
28
+ confirm: (orderPayment: OrderPayment, paymentContext: {
29
+ transactionContext: any;
30
+ userId: string;
31
+ }, unchainedAPI: any) => Promise<OrderPayment>;
32
+ charge: (orderPayment: OrderPayment, paymentContext: {
33
+ transactionContext: any;
34
+ userId: string;
35
+ }, unchainedAPI: any) => Promise<OrderPayment>;
36
+ logEvent: (orderPaymentId: string, event: any) => Promise<boolean>;
37
+ markAsPaid: (payment: OrderPayment, meta: any) => Promise<void>;
38
+ updateContext: (orderPaymentId: string, context: any) => Promise<OrderPayment | null>;
39
+ updateStatus: (orderPaymentId: string, params: {
40
+ transactionId?: string;
41
+ status: OrderPaymentStatus;
42
+ info?: string;
43
+ }) => Promise<OrderPayment>;
44
+ updateCalculation: (orderPayment: OrderPayment, unchainedAPI: any) => Promise<OrderPayment>;
45
+ deleteOrderPayments: (orderId: string) => Promise<number>;
46
+ };
47
+ export declare const buildFindByIdSelector: (orderPaymentId: string) => mongodb.Filter<OrderPayment>;
48
+ export declare const buildFindByContextDataSelector: (context: any) => mongodb.Filter<OrderPayment>;
49
+ export declare const configureOrderPaymentsModule: ({ OrderPayments, }: {
50
+ OrderPayments: mongodb.Collection<OrderPayment>;
51
+ }) => OrderPaymentsModule;
52
+ //# sourceMappingURL=configureOrderPaymentsModule_REMOTE_55877.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderPaymentsModule_REMOTE_55877.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderPaymentsModule_REMOTE_55877.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ import { emit, registerEvents } from '@unchainedshop/events';
2
+ import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
3
+ import { OrderPaymentStatus } from '../types.js';
4
+ const ORDER_PAYMENT_EVENTS = ['ORDER_UPDATE_PAYMENT', 'ORDER_SIGN_PAYMENT', 'ORDER_PAY'];
5
+ export const buildFindByIdSelector = (orderPaymentId) => generateDbFilterById(orderPaymentId);
6
+ export const buildFindByContextDataSelector = (context) => {
7
+ const contextKeys = Object.keys(context);
8
+ if (contextKeys.length === 0)
9
+ return null;
10
+ const selector = contextKeys.reduce((currentSelector, key) => context[key] !== undefined
11
+ ? {
12
+ ...currentSelector,
13
+ [`context.${key}`]: context[key],
14
+ }
15
+ : currentSelector, {});
16
+ return selector;
17
+ };
18
+ export const configureOrderPaymentsModule = ({ OrderPayments, }) => {
19
+ registerEvents(ORDER_PAYMENT_EVENTS);
20
+ const normalizedStatus = (orderPayment) => {
21
+ return orderPayment.status === null
22
+ ? OrderPaymentStatus.OPEN
23
+ : orderPayment.status;
24
+ };
25
+ const buildPaymentProviderActionsContext = (orderPayment, { transactionContext, ...rest }) => ({
26
+ ...rest,
27
+ orderPayment,
28
+ paymentProviderId: orderPayment.paymentProviderId,
29
+ transactionContext: {
30
+ ...(transactionContext || {}),
31
+ ...(orderPayment.context || {}),
32
+ },
33
+ });
34
+ const updateStatus = async (orderPaymentId, { status, transactionId, info }) => {
35
+ const date = new Date();
36
+ const modifier = {
37
+ $set: { status, updated: new Date() },
38
+ $push: {
39
+ log: {
40
+ date,
41
+ status,
42
+ info,
43
+ },
44
+ },
45
+ };
46
+ if (transactionId) {
47
+ // eslint-disable-next-line
48
+ // @ts-ignore
49
+ modifier.$set.transactionId = transactionId;
50
+ }
51
+ if (status === OrderPaymentStatus.PAID) {
52
+ // eslint-disable-next-line
53
+ // @ts-ignore
54
+ modifier.$set.paid = date;
55
+ }
56
+ const selector = buildFindByIdSelector(orderPaymentId);
57
+ return OrderPayments.findOneAndUpdate(selector, modifier, { returnDocument: 'after' });
58
+ };
59
+ return {
60
+ // Queries
61
+ findOrderPayment: async ({ orderPaymentId }, options) => {
62
+ return OrderPayments.findOne(buildFindByIdSelector(orderPaymentId), options);
63
+ },
64
+ findOrderPaymentByContextData: async ({ context }, options) => {
65
+ const selector = buildFindByContextDataSelector(context);
66
+ return OrderPayments.findOne(selector, options);
67
+ },
68
+ countOrderPaymentsByContextData: async ({ context }, options) => {
69
+ const selector = buildFindByContextDataSelector(context);
70
+ return OrderPayments.countDocuments(selector, options);
71
+ },
72
+ // Transformations
73
+ discounts: (orderPayment, { order, orderDiscount }, context) => {
74
+ const { modules } = context;
75
+ if (!orderPayment)
76
+ return [];
77
+ const pricingSheet = modules.orders.payments.pricingSheet(orderPayment, order.currency, context);
78
+ return pricingSheet.discountPrices(orderDiscount._id).map((discount) => ({
79
+ payment: orderPayment,
80
+ ...discount,
81
+ }));
82
+ },
83
+ isBlockingOrderConfirmation: async (orderPayment, unchainedAPI) => {
84
+ if (orderPayment.status === OrderPaymentStatus.PAID)
85
+ return false;
86
+ const provider = await unchainedAPI.modules.payment.paymentProviders.findProvider({
87
+ paymentProviderId: orderPayment.paymentProviderId,
88
+ });
89
+ const isPayLaterAllowed = await unchainedAPI.modules.payment.paymentProviders.isPayLaterAllowed(provider, unchainedAPI);
90
+ return !isPayLaterAllowed;
91
+ },
92
+ isBlockingOrderFullfillment: (orderPayment) => {
93
+ if (orderPayment.status === OrderPaymentStatus.PAID)
94
+ return false;
95
+ return true;
96
+ },
97
+ normalizedStatus,
98
+ pricingSheet: (orderPayment, currency, { modules }) => {
99
+ return modules.payment.paymentProviders.pricingSheet({
100
+ calculation: orderPayment.calculation,
101
+ currency,
102
+ });
103
+ },
104
+ // Mutations
105
+ create: async (doc) => {
106
+ const { insertedId: orderPaymentId } = await OrderPayments.insertOne({
107
+ _id: generateDbObjectId(),
108
+ created: new Date(),
109
+ ...doc,
110
+ status: null,
111
+ context: doc.context || {},
112
+ });
113
+ const orderPayment = await OrderPayments.findOne(buildFindByIdSelector(orderPaymentId));
114
+ return orderPayment;
115
+ },
116
+ confirm: async (orderPayment, paymentContext, unchainedAPI) => {
117
+ const { modules } = unchainedAPI;
118
+ if (normalizedStatus(orderPayment) !== OrderPaymentStatus.PAID) {
119
+ return orderPayment;
120
+ }
121
+ const arbitraryResponseData = await modules.payment.paymentProviders.confirm(orderPayment.paymentProviderId, buildPaymentProviderActionsContext(orderPayment, paymentContext), unchainedAPI);
122
+ if (arbitraryResponseData) {
123
+ return updateStatus(orderPayment._id, {
124
+ status: OrderPaymentStatus.PAID,
125
+ info: JSON.stringify(arbitraryResponseData),
126
+ });
127
+ }
128
+ return orderPayment;
129
+ },
130
+ cancel: async (orderPayment, paymentContext, unchainedAPI) => {
131
+ const { modules } = unchainedAPI;
132
+ if (normalizedStatus(orderPayment) !== OrderPaymentStatus.PAID) {
133
+ return orderPayment;
134
+ }
135
+ const arbitraryResponseData = await modules.payment.paymentProviders.cancel(orderPayment.paymentProviderId, buildPaymentProviderActionsContext(orderPayment, paymentContext), unchainedAPI);
136
+ if (arbitraryResponseData) {
137
+ return updateStatus(orderPayment._id, {
138
+ status: OrderPaymentStatus.REFUNDED,
139
+ info: JSON.stringify(arbitraryResponseData),
140
+ });
141
+ }
142
+ return orderPayment;
143
+ },
144
+ charge: async (orderPayment, context, unchainedAPI) => {
145
+ const { modules } = unchainedAPI;
146
+ if (normalizedStatus(orderPayment) !== OrderPaymentStatus.OPEN) {
147
+ return orderPayment;
148
+ }
149
+ const paymentCredentials = context.transactionContext?.paymentCredentials ||
150
+ (await modules.payment.paymentCredentials.findPaymentCredential({
151
+ userId: context.userId,
152
+ paymentProviderId: orderPayment.paymentProviderId,
153
+ isPreferred: true,
154
+ }));
155
+ const paymentContext = buildPaymentProviderActionsContext(orderPayment, {
156
+ ...context,
157
+ transactionContext: {
158
+ ...context.transactionContext,
159
+ paymentCredentials,
160
+ },
161
+ });
162
+ const result = await modules.payment.paymentProviders.charge(orderPayment.paymentProviderId, paymentContext, unchainedAPI);
163
+ if (!result)
164
+ return orderPayment;
165
+ const { credentials, ...arbitraryResponseData } = result;
166
+ if (credentials) {
167
+ const { token, ...meta } = credentials;
168
+ await modules.payment.paymentCredentials.upsertCredentials({
169
+ userId: paymentContext.userId,
170
+ paymentProviderId: orderPayment.paymentProviderId,
171
+ token,
172
+ ...meta,
173
+ });
174
+ }
175
+ if (arbitraryResponseData) {
176
+ const { transactionId, ...info } = arbitraryResponseData;
177
+ return updateStatus(orderPayment._id, {
178
+ transactionId,
179
+ status: OrderPaymentStatus.PAID,
180
+ info: JSON.stringify(info),
181
+ });
182
+ }
183
+ return orderPayment;
184
+ },
185
+ logEvent: async (orderPaymentId, event) => {
186
+ const date = new Date();
187
+ const modifier = {
188
+ $push: {
189
+ log: {
190
+ date,
191
+ status: undefined,
192
+ info: JSON.stringify(event),
193
+ },
194
+ },
195
+ };
196
+ await OrderPayments.updateOne(generateDbFilterById(orderPaymentId), modifier);
197
+ return true;
198
+ },
199
+ markAsPaid: async (orderPayment, meta) => {
200
+ if (normalizedStatus(orderPayment) !== OrderPaymentStatus.OPEN)
201
+ return;
202
+ await updateStatus(orderPayment._id, {
203
+ status: OrderPaymentStatus.PAID,
204
+ info: meta ? JSON.stringify(meta) : 'mark paid manually',
205
+ });
206
+ await emit('ORDER_PAY', { orderPayment });
207
+ },
208
+ updateContext: async (orderPaymentId, context) => {
209
+ const selector = buildFindByIdSelector(orderPaymentId);
210
+ if (!context || Object.keys(context).length === 0)
211
+ return OrderPayments.findOne(selector, {});
212
+ const contextSetters = Object.fromEntries(Object.entries(context).map(([key, value]) => [`context.${key}`, value]));
213
+ const result = await OrderPayments.findOneAndUpdate(selector, {
214
+ $set: {
215
+ ...contextSetters,
216
+ updated: new Date(),
217
+ },
218
+ }, { includeResultMetadata: true, returnDocument: 'after' });
219
+ if (result.ok) {
220
+ await emit('ORDER_UPDATE_PAYMENT', {
221
+ orderPayment: result.value,
222
+ });
223
+ return result.value;
224
+ }
225
+ return null;
226
+ },
227
+ updateStatus,
228
+ updateCalculation: async (orderPayment, unchainedAPI) => {
229
+ const calculation = await unchainedAPI.modules.payment.paymentProviders.calculate({
230
+ item: orderPayment,
231
+ }, unchainedAPI);
232
+ return OrderPayments.findOneAndUpdate(buildFindByIdSelector(orderPayment._id), {
233
+ $set: {
234
+ calculation,
235
+ updated: new Date(),
236
+ },
237
+ }, {
238
+ returnDocument: 'after',
239
+ });
240
+ },
241
+ deleteOrderPayments: async (orderId) => {
242
+ const { deletedCount } = await OrderPayments.deleteMany({ orderId });
243
+ return deletedCount;
244
+ },
245
+ };
246
+ };
247
+ //# sourceMappingURL=configureOrderPaymentsModule_REMOTE_55877.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderPaymentsModule_REMOTE_55877.js","sourceRoot":"","sources":["../../src/module/configureOrderPaymentsModule_REMOTE_55877.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,44 @@
1
- import type { OrderDiscount } from '@unchainedshop/core-orders';
2
- import type { UnchainedCore } from '@unchainedshop/core';
3
- import { IProductPricingSheet, Product } from '@unchainedshop/core-products';
4
- import { Order, OrderPosition } from '../types.js';
5
1
  import { mongodb } from '@unchainedshop/mongodb';
6
- import { OrderDelivery } from '@unchainedshop/core-orders';
7
- import { OrderPricingDiscount } from '../director/OrderPricingDirector.js';
8
- export type OrderPositionsModule = {
9
- findOrderPosition: (params: {
2
+ import { PricingCalculation } from '@unchainedshop/utils';
3
+ import { OrderPosition } from '../db/OrderPositionsCollection.js';
4
+ export declare const buildFindOrderPositionByIdSelector: (orderPositionId: string, orderId?: string) => mongodb.Filter<OrderPosition>;
5
+ export declare const configureOrderPositionsModule: ({ OrderPositions, }: {
6
+ OrderPositions: mongodb.Collection<OrderPosition>;
7
+ }) => {
8
+ findOrderPosition: ({ itemId }: {
10
9
  itemId: string;
11
10
  }, options?: mongodb.FindOptions) => Promise<OrderPosition>;
12
- findOrderPositions: (params: {
11
+ findOrderPositions: ({ orderId }: {
13
12
  orderId: string;
14
- }) => Promise<Array<OrderPosition>>;
15
- discounts: (orderPosition: OrderPosition, params: {
16
- order: Order;
17
- orderDiscount: OrderDiscount;
18
- }, unchainedAPI: UnchainedCore) => Array<OrderPricingDiscount>;
19
- pricingSheet: (orderPosition: OrderPosition, currency: string, unchainedAPI: UnchainedCore) => IProductPricingSheet;
13
+ }) => Promise<OrderPosition[]>;
20
14
  delete: (orderPositionId: string) => Promise<OrderPosition>;
21
15
  removePositions: ({ orderId }: {
22
16
  orderId: string;
23
17
  }) => Promise<number>;
24
- removeProductByIdFromAllOpenPositions: (productId: string) => Promise<Array<string>>;
25
- updateProductItem: (doc: {
26
- context?: any;
18
+ updateProductItem: ({ orderPositionId, quantity, configuration, }: {
19
+ orderPositionId: string;
27
20
  configuration?: Array<{
28
21
  key: string;
29
22
  value: string;
30
23
  }>;
31
24
  quantity?: number;
32
- }, params: {
33
- order: Order;
34
- product: Product;
35
- orderPosition: OrderPosition;
36
- }, unchainedAPI: UnchainedCore) => Promise<OrderPosition>;
37
- updateScheduling: (params: {
38
- order: Order;
39
- orderDelivery: OrderDelivery;
40
- orderPosition: OrderPosition;
41
- }, unchainedAPI: UnchainedCore) => Promise<OrderPosition>;
42
- updateCalculation: (orderPosition: OrderPosition, unchainedAPI: UnchainedCore) => Promise<OrderPosition>;
43
- addProductItem: (doc: {
25
+ }) => Promise<OrderPosition>;
26
+ removeProductByIdFromAllOpenPositions: (productId: string) => Promise<Array<string>>;
27
+ updateScheduling: (orderPositionId: any, scheduling: any) => Promise<OrderPosition>;
28
+ updateCalculation: <T extends PricingCalculation>(orderPositionId: string, calculation: Array<T>) => Promise<OrderPosition>;
29
+ addProductItem: (orderPosition: {
44
30
  context?: any;
45
31
  configuration?: Array<{
46
32
  key: string;
47
33
  value: string;
48
34
  }>;
49
- orderId?: string;
50
- originalProductId?: string;
51
- productId?: string;
35
+ orderId: string;
36
+ originalProductId: string;
37
+ productId: string;
52
38
  quantity: number;
53
39
  quotationId?: string;
54
- }, params: {
55
- order: Order;
56
- product: Product;
57
- }, unchainedAPI: UnchainedCore) => Promise<OrderPosition>;
40
+ }) => Promise<OrderPosition>;
41
+ deleteOrderPositions: (orderId: string) => Promise<number>;
58
42
  };
59
- export declare const buildFindByIdSelector: (orderPositionId: string, orderId?: string) => mongodb.Filter<OrderPosition>;
60
- export declare const configureOrderPositionsModule: ({ OrderPositions, }: {
61
- OrderPositions: mongodb.Collection<OrderPosition>;
62
- }) => OrderPositionsModule;
43
+ export type OrderPositionsModule = ReturnType<typeof configureOrderPositionsModule>;
63
44
  //# sourceMappingURL=configureOrderPositionsModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureOrderPositionsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderPositionsModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAAG;IAEjC,iBAAiB,EAAE,CACjB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC1B,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,KAC1B,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,kBAAkB,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAGnF,SAAS,EAAE,CACT,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,EACtD,YAAY,EAAE,aAAa,KACxB,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEjC,YAAY,EAAE,CACZ,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,aAAa,KACxB,oBAAoB,CAAC;IAE1B,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5D,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,qCAAqC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAErF,iBAAiB,EAAE,CACjB,GAAG,EAAE;QACH,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,aAAa,CAAC,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EACD,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,EACxE,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,gBAAgB,EAAE,CAChB,MAAM,EAAE;QACN,KAAK,EAAE,KAAK,CAAC;QACb,aAAa,EAAE,aAAa,CAAC;QAC7B,aAAa,EAAE,aAAa,CAAC;KAC9B,EACD,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,iBAAiB,EAAE,CACjB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,cAAc,EAAE,CACd,GAAG,EAAE;QACH,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,aAAa,CAAC,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACtD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,EACD,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAC1C,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7B,CAAC;AASF,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,YAAY,MAAM,KAIxE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAErC,eAAO,MAAM,6BAA6B,wBAEvC;IACD,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACnD,KAAG,oBA8QH,CAAC"}
1
+ {"version":3,"file":"configureOrderPositionsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderPositionsModule.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AASlE,eAAO,MAAM,kCAAkC,oBAAqB,MAAM,YAAY,MAAM,KAIrF,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAErC,eAAO,MAAM,6BAA6B,wBAEvC;IACD,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACnD;oCAMiB;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,YACpB,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,aAAa,CAAC;sCAIe;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,aAAa,EAAE,CAAC;8BAKtD,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;mCAS1B;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,MAAM,CAAC;uEAUvE;QACD,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CAAC,aAAa,CAAC;uDAgC+B,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;iEAoCjC,OAAO,CAAC,aAAa,CAAC;wBAYnD,CAAC,SAAS,kBAAkB,mBACnC,MAAM,eACV,KAAK,CAAC,CAAC,CAAC,KACpB,OAAO,CAAC,aAAa,CAAC;oCAYa;QACpC,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,aAAa,CAAC,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACtD,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAG,OAAO,CAAC,aAAa,CAAC;oCAwCY,MAAM;CAK/C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
@@ -1,41 +1,25 @@
1
1
  import { emit, registerEvents } from '@unchainedshop/events';
2
2
  import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
3
- import { ordersSettings } from '../orders-settings.js';
4
3
  const ORDER_POSITION_EVENTS = [
5
4
  'ORDER_UPDATE_CART_ITEM',
6
5
  'ORDER_REMOVE_CART_ITEM',
7
6
  'ORDER_EMPTY_CART',
8
7
  'ORDER_ADD_PRODUCT',
9
8
  ];
10
- export const buildFindByIdSelector = (orderPositionId, orderId) => generateDbFilterById(orderPositionId, orderId ? { orderId } : undefined);
9
+ export const buildFindOrderPositionByIdSelector = (orderPositionId, orderId) => generateDbFilterById(orderPositionId, orderId ? { orderId } : undefined);
11
10
  export const configureOrderPositionsModule = ({ OrderPositions, }) => {
12
11
  registerEvents(ORDER_POSITION_EVENTS);
13
12
  return {
14
13
  // Queries
15
14
  findOrderPosition: async ({ itemId }, options) => {
16
- return OrderPositions.findOne(buildFindByIdSelector(itemId), options);
15
+ return OrderPositions.findOne(buildFindOrderPositionByIdSelector(itemId), options);
17
16
  },
18
17
  findOrderPositions: async ({ orderId }) => {
19
18
  const positions = OrderPositions.find({ orderId, quantity: { $gt: 0 } });
20
19
  return positions.toArray();
21
20
  },
22
- // Transformations
23
- discounts: (orderPosition, { order, orderDiscount }, unchainedAPI) => {
24
- const pricingSheet = unchainedAPI.modules.orders.positions.pricingSheet(orderPosition, order.currency, unchainedAPI);
25
- return pricingSheet.discountPrices(orderDiscount._id).map((discount) => ({
26
- item: orderPosition,
27
- ...discount,
28
- }));
29
- },
30
- pricingSheet: (orderPosition, currency, { modules }) => {
31
- return modules.products.pricingSheet({
32
- calculation: orderPosition.calculation,
33
- currency,
34
- quantity: orderPosition.quantity,
35
- });
36
- },
37
21
  delete: async (orderPositionId) => {
38
- const selector = buildFindByIdSelector(orderPositionId);
22
+ const selector = buildFindOrderPositionByIdSelector(orderPositionId);
39
23
  const orderPosition = await OrderPositions.findOneAndDelete(selector, {});
40
24
  await emit('ORDER_REMOVE_CART_ITEM', {
41
25
  orderPosition,
@@ -47,28 +31,21 @@ export const configureOrderPositionsModule = ({ OrderPositions, }) => {
47
31
  await emit('ORDER_EMPTY_CART', { orderId, count: result.deletedCount });
48
32
  return result.deletedCount;
49
33
  },
50
- updateProductItem: async ({ quantity, configuration }, { order, product, orderPosition }, unchainedAPI) => {
51
- const selector = buildFindByIdSelector(orderPosition._id, order._id);
34
+ updateProductItem: async ({ orderPositionId, quantity, configuration, }) => {
52
35
  const modifier = {
53
36
  $set: {
54
37
  updated: new Date(),
55
38
  },
56
39
  };
57
- if (quantity !== null && quantity !== orderPosition.quantity) {
40
+ if (quantity !== null) {
58
41
  modifier.$set.quantity = quantity;
59
42
  }
60
43
  if (configuration !== null) {
61
- const resolvedProduct = await unchainedAPI.modules.products.resolveOrderableProduct(product, { configuration }, unchainedAPI);
62
- modifier.$set.productId = resolvedProduct._id;
63
44
  modifier.$set.configuration = configuration;
64
45
  }
65
- await ordersSettings.validateOrderPosition({
66
- order,
67
- product,
68
- configuration,
69
- quantityDiff: quantity - orderPosition.quantity,
70
- }, unchainedAPI);
71
- const updatedOrderPosition = await OrderPositions.findOneAndUpdate(selector, modifier, {
46
+ const updatedOrderPosition = await OrderPositions.findOneAndUpdate({
47
+ _id: orderPositionId,
48
+ }, modifier, {
72
49
  returnDocument: 'after',
73
50
  });
74
51
  await emit('ORDER_UPDATE_CART_ITEM', {
@@ -107,71 +84,27 @@ export const configureOrderPositionsModule = ({ OrderPositions, }) => {
107
84
  const orderIdsToRecalculate = positions.map((o) => o.orderId);
108
85
  return orderIdsToRecalculate;
109
86
  },
110
- updateScheduling: async ({ order, orderDelivery, orderPosition }, unchainedAPI) => {
111
- const { modules } = unchainedAPI;
112
- // scheduling (store in db for auditing)
113
- const product = await modules.products.findProduct({
114
- productId: orderPosition.productId,
115
- });
116
- const deliveryProvider = orderDelivery &&
117
- (await modules.delivery.findProvider({
118
- deliveryProviderId: orderDelivery.deliveryProviderId,
119
- }));
120
- const { countryCode, userId } = order;
121
- const scheduling = await Promise.all((await modules.warehousing.findSupported({
122
- product,
123
- deliveryProvider,
124
- }, unchainedAPI)).map(async (warehousingProvider) => {
125
- const context = {
126
- warehousingProvider,
127
- deliveryProvider,
128
- product,
129
- item: orderPosition,
130
- delivery: deliveryProvider,
131
- order,
132
- userId,
133
- country: countryCode,
134
- referenceDate: order.ordered,
135
- quantity: orderPosition.quantity,
136
- };
137
- const dispatch = await unchainedAPI.modules.warehousing.estimatedDispatch(warehousingProvider, context, unchainedAPI);
138
- return {
139
- warehousingProviderId: warehousingProvider._id,
140
- ...dispatch,
141
- };
142
- }));
143
- return OrderPositions.findOneAndUpdate(generateDbFilterById(orderPosition._id), {
87
+ updateScheduling: async (orderPositionId, scheduling) => {
88
+ return OrderPositions.findOneAndUpdate(generateDbFilterById(orderPositionId), {
144
89
  $set: { scheduling },
145
90
  }, {
146
91
  returnDocument: 'after',
147
92
  });
148
93
  },
149
- updateCalculation: async (orderPosition, unchainedAPI) => {
150
- const calculation = await unchainedAPI.modules.products.calculate({ item: orderPosition, configuration: orderPosition.configuration }, unchainedAPI);
151
- return OrderPositions.findOneAndUpdate(buildFindByIdSelector(orderPosition._id), {
94
+ updateCalculation: async (orderPositionId, calculation) => {
95
+ return OrderPositions.findOneAndUpdate({ _id: orderPositionId }, {
152
96
  $set: { calculation },
153
97
  }, {
154
98
  returnDocument: 'after',
155
99
  });
156
100
  },
157
- addProductItem: async (orderPosition, { order, product }, unchainedAPI) => {
158
- const { modules } = unchainedAPI;
159
- const { configuration, orderId: positionOrderId, quantity, ...scope } = orderPosition;
160
- const orderId = order._id || positionOrderId;
161
- // Resolve product
162
- const resolvedProduct = await modules.products.resolveOrderableProduct(product, { configuration }, unchainedAPI);
163
- // Validate add to cart mutation
164
- await ordersSettings.validateOrderPosition({
165
- order,
166
- product,
167
- configuration,
168
- quantityDiff: quantity,
169
- }, unchainedAPI);
101
+ addProductItem: async (orderPosition) => {
102
+ const { configuration, orderId, originalProductId, productId, quantity, ...scope } = orderPosition;
170
103
  // Search for existing position
171
104
  const selector = {
172
105
  orderId,
173
- productId: resolvedProduct._id,
174
- originalProductId: product._id,
106
+ productId,
107
+ originalProductId,
175
108
  configuration: configuration || { $in: [null, undefined] },
176
109
  ...scope,
177
110
  };
@@ -186,8 +119,8 @@ export const configureOrderPositionsModule = ({ OrderPositions, }) => {
186
119
  calculation: [],
187
120
  scheduling: [],
188
121
  orderId,
189
- productId: resolvedProduct._id,
190
- originalProductId: product._id,
122
+ productId,
123
+ originalProductId,
191
124
  configuration,
192
125
  ...scope,
193
126
  },
@@ -196,6 +129,10 @@ export const configureOrderPositionsModule = ({ OrderPositions, }) => {
196
129
  await emit('ORDER_ADD_PRODUCT', { orderPosition: upsertedOrderPosition });
197
130
  return upsertedOrderPosition;
198
131
  },
132
+ deleteOrderPositions: async (orderId) => {
133
+ const { deletedCount } = await OrderPositions.deleteMany({ orderId });
134
+ return deletedCount;
135
+ },
199
136
  };
200
137
  };
201
138
  //# sourceMappingURL=configureOrderPositionsModule.js.map