@chevre/domain 21.20.0-alpha.7 → 21.20.0-alpha.70

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 (218) hide show
  1. package/example/src/chevre/findTransactionById.ts +21 -0
  2. package/example/src/chevre/importCategoryCodesFromCOA.ts +2 -1
  3. package/example/src/chevre/importOffersFromCOA.ts +2 -1
  4. package/example/src/chevre/migrateActionInstrumentTransactionNumber.ts +93 -0
  5. package/example/src/chevre/migrateEventMakesOfferAvailableAtOrFrom.ts +87 -0
  6. package/example/src/chevre/migrateOfferAvailableAtOrFrom.ts +63 -0
  7. package/example/src/chevre/{migrateOrderPaymentMethodIdentifier.ts → migrateOrderAcceptedOfferSerialNumber.ts} +18 -19
  8. package/example/src/chevre/onAssetTransactionStatusChanged.ts +36 -0
  9. package/example/src/chevre/retryTasks.ts +39 -0
  10. package/example/src/chevre/searchActions.ts +13 -7
  11. package/example/src/chevre/searchOrderAcceptedOffers.ts +13 -3
  12. package/example/src/chevre/searchOrders.ts +13 -15
  13. package/example/src/chevre/searchSlicedAcceptedOffersByOrderNumber.ts +28 -0
  14. package/example/src/chevre/sendOrder.ts +37 -0
  15. package/example/src/chevre/transaction/processPlaceOrder.ts +73 -40
  16. package/lib/chevre/credentials.d.ts +2 -0
  17. package/lib/chevre/credentials.js +4 -2
  18. package/lib/chevre/errorHandler.js +3 -0
  19. package/lib/chevre/factory/order.d.ts +1 -0
  20. package/lib/chevre/factory/order.js +2 -1
  21. package/lib/chevre/factory/transaction.d.ts +10 -1
  22. package/lib/chevre/repo/acceptedOffer.d.ts +58 -2
  23. package/lib/chevre/repo/acceptedOffer.js +100 -4
  24. package/lib/chevre/repo/accountingReport.d.ts +33 -7
  25. package/lib/chevre/repo/accountingReport.js +157 -5
  26. package/lib/chevre/repo/action.d.ts +32 -8
  27. package/lib/chevre/repo/action.js +114 -54
  28. package/lib/chevre/repo/event.d.ts +20 -0
  29. package/lib/chevre/repo/event.js +22 -0
  30. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +2 -1
  31. package/lib/chevre/repo/mongoose/schemas/action.d.ts +1 -1
  32. package/lib/chevre/repo/mongoose/schemas/action.js +25 -11
  33. package/lib/chevre/repo/mongoose/schemas/order.d.ts +1 -1
  34. package/lib/chevre/repo/mongoose/schemas/order.js +38 -11
  35. package/lib/chevre/repo/offer.d.ts +42 -0
  36. package/lib/chevre/repo/offer.js +35 -0
  37. package/lib/chevre/repo/order.js +43 -20
  38. package/lib/chevre/repo/orderInTransaction.d.ts +44 -0
  39. package/lib/chevre/repo/orderInTransaction.js +164 -0
  40. package/lib/chevre/repo/paymentServiceProvider.js +2 -1
  41. package/lib/chevre/repo/task.d.ts +1 -3
  42. package/lib/chevre/repo/task.js +56 -46
  43. package/lib/chevre/repo/transaction.d.ts +2 -2
  44. package/lib/chevre/repo/transaction.js +13 -36
  45. package/lib/chevre/repository.d.ts +5 -0
  46. package/lib/chevre/repository.js +15 -2
  47. package/lib/chevre/service/aggregation/event/importFromCOA.js +5 -5
  48. package/lib/chevre/service/assetTransaction/pay/factory.js +1 -6
  49. package/lib/chevre/service/assetTransaction/pay/potentialActions/createPayObjectServiceOutput.d.ts +9 -0
  50. package/lib/chevre/service/assetTransaction/pay/potentialActions/createPayObjectServiceOutput.js +143 -0
  51. package/lib/chevre/service/assetTransaction/pay/potentialActions.d.ts +11 -3
  52. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +4 -165
  53. package/lib/chevre/service/assetTransaction/pay.d.ts +21 -11
  54. package/lib/chevre/service/assetTransaction/pay.js +65 -24
  55. package/lib/chevre/service/assetTransaction/reserve/factory.js +11 -14
  56. package/lib/chevre/service/assetTransaction/reserveCOA.d.ts +19 -0
  57. package/lib/chevre/service/assetTransaction/reserveCOA.js +46 -0
  58. package/lib/chevre/service/code.js +1 -1
  59. package/lib/chevre/service/delivery.js +2 -2
  60. package/lib/chevre/service/event/createEvent.js +1 -1
  61. package/lib/chevre/service/event.js +16 -24
  62. package/lib/chevre/service/moneyTransfer.js +1 -1
  63. package/lib/chevre/service/notification.js +71 -66
  64. package/lib/chevre/service/offer/any.d.ts +35 -0
  65. package/lib/chevre/service/offer/any.js +67 -0
  66. package/lib/chevre/service/offer/event/authorize.d.ts +7 -0
  67. package/lib/chevre/service/offer/event/authorize.js +20 -14
  68. package/lib/chevre/service/offer/event/cancel.d.ts +2 -0
  69. package/lib/chevre/service/offer/event/cancel.js +13 -1
  70. package/lib/chevre/service/offer/event/factory.d.ts +1 -1
  71. package/lib/chevre/service/offer/event/factory.js +11 -22
  72. package/lib/chevre/service/offer/event/importFromCOA.js +6 -8
  73. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  74. package/lib/chevre/service/offer/event/voidTransaction.js +24 -7
  75. package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +48 -0
  76. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +133 -0
  77. package/lib/chevre/service/offer/eventServiceByCOA/cancel.d.ts +39 -0
  78. package/lib/chevre/service/offer/eventServiceByCOA/cancel.js +59 -0
  79. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.d.ts +25 -0
  80. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +165 -0
  81. package/lib/chevre/service/offer/eventServiceByCOA/factory.js +10 -23
  82. package/lib/chevre/service/offer/eventServiceByCOA.d.ts +4 -89
  83. package/lib/chevre/service/offer/eventServiceByCOA.js +7 -292
  84. package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +10 -1
  85. package/lib/chevre/service/offer/moneyTransfer/authorize.js +49 -3
  86. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +1 -1
  87. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.d.ts +2 -0
  88. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +47 -2
  89. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +1 -1
  90. package/lib/chevre/service/offer/product/factory.js +2 -5
  91. package/lib/chevre/service/offer/product.d.ts +2 -0
  92. package/lib/chevre/service/offer/product.js +11 -23
  93. package/lib/chevre/service/order/confirmPayTransaction.d.ts +3 -1
  94. package/lib/chevre/service/order/confirmPayTransaction.js +5 -5
  95. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +1 -1
  96. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +11 -1
  97. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +205 -7
  98. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  99. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.d.ts +1 -1
  100. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +51 -53
  101. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +1 -1
  102. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +10 -25
  103. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +16 -0
  104. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +91 -0
  105. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +8 -0
  106. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +37 -0
  107. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +10 -0
  108. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +85 -0
  109. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.d.ts +4 -0
  110. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +44 -1
  111. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.d.ts +8 -0
  112. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +41 -0
  113. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +6 -10
  114. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +116 -92
  115. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +4 -1
  116. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +81 -84
  117. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  118. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +18 -15
  119. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +62 -1
  120. package/lib/chevre/service/order/onOrderStatusChanged.d.ts +3 -1
  121. package/lib/chevre/service/order/onOrderStatusChanged.js +5 -1
  122. package/lib/chevre/service/order/placeOrder.d.ts +3 -1
  123. package/lib/chevre/service/order/placeOrder.js +160 -54
  124. package/lib/chevre/service/order/returnOrder.js +25 -16
  125. package/lib/chevre/service/order/sendOrder.d.ts +5 -0
  126. package/lib/chevre/service/order/sendOrder.js +67 -33
  127. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.d.ts +3 -1
  128. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +15 -9
  129. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.d.ts +3 -1
  130. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +8 -5
  131. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +2 -2
  132. package/lib/chevre/service/payment/any.d.ts +6 -8
  133. package/lib/chevre/service/payment/any.js +8 -3
  134. package/lib/chevre/service/payment/creditCard.d.ts +4 -2
  135. package/lib/chevre/service/payment/creditCard.js +90 -74
  136. package/lib/chevre/service/payment/faceToFace.d.ts +1 -5
  137. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +0 -2
  138. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.js +1 -0
  139. package/lib/chevre/service/payment/movieTicket/validation.d.ts +0 -2
  140. package/lib/chevre/service/payment/movieTicket.d.ts +1 -7
  141. package/lib/chevre/service/payment/movieTicket.js +1 -1
  142. package/lib/chevre/service/payment/paymentCard.d.ts +1 -3
  143. package/lib/chevre/service/payment/paymentCard.js +6 -6
  144. package/lib/chevre/service/payment.d.ts +5 -0
  145. package/lib/chevre/service/payment.js +41 -6
  146. package/lib/chevre/service/product.js +1 -1
  147. package/lib/chevre/service/reserve/cancelReservation.js +2 -2
  148. package/lib/chevre/service/reserve/checkInReservation.d.ts +1 -3
  149. package/lib/chevre/service/reserve/checkInReservation.js +6 -5
  150. package/lib/chevre/service/reserve/confirmReservation.js +1 -1
  151. package/lib/chevre/service/reserve/factory.js +0 -8
  152. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.d.ts +1 -1
  153. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +4 -4
  154. package/lib/chevre/service/reserve/searchByOrder.js +2 -1
  155. package/lib/chevre/service/reserve/useReservation.d.ts +1 -3
  156. package/lib/chevre/service/reserve/useReservation.js +10 -9
  157. package/lib/chevre/service/reserve/verifyToken4reservation.js +2 -0
  158. package/lib/chevre/service/task/confirmMoneyTransfer.js +4 -4
  159. package/lib/chevre/service/task/confirmPayTransaction.js +2 -1
  160. package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
  161. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +30 -8
  162. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +6 -1
  163. package/lib/chevre/service/task/confirmReserveTransaction.js +176 -29
  164. package/lib/chevre/service/task/createAccountingReport.d.ts +6 -0
  165. package/lib/chevre/service/task/createAccountingReport.js +80 -0
  166. package/lib/chevre/service/task/importOffersFromCOA.js +2 -1
  167. package/lib/chevre/service/task/onAuthorizationCreated.js +0 -1
  168. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.js +7 -7
  169. package/lib/chevre/service/task/pay.js +6 -0
  170. package/lib/chevre/service/task/placeOrder.js +9 -10
  171. package/lib/chevre/service/task/returnOrder.js +0 -3
  172. package/lib/chevre/service/task/returnPayTransaction.js +1 -1
  173. package/lib/chevre/service/task/returnReserveTransaction.js +3 -2
  174. package/lib/chevre/service/task/sendOrder.js +8 -4
  175. package/lib/chevre/service/task/useReservation.js +1 -1
  176. package/lib/chevre/service/task/voidPayTransaction.js +2 -2
  177. package/lib/chevre/service/task/voidReserveTransaction.js +8 -12
  178. package/lib/chevre/service/transaction/deleteTransaction.js +1 -1
  179. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +2 -18
  180. package/lib/chevre/service/transaction/moneyTransfer.js +7 -6
  181. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +2 -2
  182. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +17 -20
  183. package/lib/chevre/service/transaction/placeOrder.js +2 -1
  184. package/lib/chevre/service/transaction/placeOrderInProgress/confirm.d.ts +51 -0
  185. package/lib/chevre/service/transaction/placeOrderInProgress/confirm.js +266 -0
  186. package/lib/chevre/service/transaction/placeOrderInProgress/factory.d.ts +1 -1
  187. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +3 -2
  188. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  189. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +22 -44
  190. package/lib/chevre/service/transaction/placeOrderInProgress/publishCode.d.ts +14 -0
  191. package/lib/chevre/service/transaction/placeOrderInProgress/publishCode.js +41 -0
  192. package/lib/chevre/service/transaction/placeOrderInProgress/publishConfirmationNumberIfNotExist.d.ts +18 -0
  193. package/lib/chevre/service/transaction/placeOrderInProgress/publishConfirmationNumberIfNotExist.js +42 -0
  194. package/lib/chevre/service/transaction/placeOrderInProgress/publishOrderNumberIfNotExist.d.ts +23 -0
  195. package/lib/chevre/service/transaction/placeOrderInProgress/publishOrderNumberIfNotExist.js +46 -0
  196. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +34 -37
  197. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +3 -1
  198. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +13 -4
  199. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateSeller.d.ts +8 -2
  200. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateSeller.js +76 -23
  201. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +10 -23
  202. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +20 -1
  203. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +16 -65
  204. package/lib/chevre/service/transaction/placeOrderInProgress.js +16 -249
  205. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +1 -2
  206. package/lib/chevre/service/transaction/returnOrder/potentialActions.d.ts +0 -1
  207. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +8 -3
  208. package/lib/chevre/service/transaction/returnOrder/preStart.js +78 -50
  209. package/lib/chevre/service/transaction/returnOrder.js +3 -10
  210. package/lib/chevre/service.js +0 -10
  211. package/lib/chevre/settings.d.ts +7 -3
  212. package/lib/chevre/settings.js +13 -4
  213. package/package.json +5 -9
  214. package/example/src/chevre/cleanAccountingReports.ts +0 -57
  215. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.d.ts +0 -7
  216. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +0 -82
  217. package/lib/chevre/service/util.d.ts +0 -19
  218. package/lib/chevre/service/util.js +0 -126
@@ -0,0 +1,21 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const transactionRepo = await chevre.repository.Transaction.createInstance(mongoose.connection);
10
+
11
+ const transaction = await transactionRepo.findById({
12
+ typeOf: chevre.factory.transactionType.PlaceOrder,
13
+ id: '65ab04d5206595479469f50c',
14
+ inclusion: ['endDate', 'id', 'object', 'project', 'seller', 'startDate', 'status', 'typeOf']
15
+ });
16
+ console.log('transaction:', transaction);
17
+ }
18
+
19
+ main()
20
+ .then(console.log)
21
+ .catch(console.error);
@@ -9,7 +9,8 @@ const project = { id: String(process.env.PROJECT_ID) };
9
9
 
10
10
  const coaAuthClient = new COA.auth.RefreshToken({
11
11
  endpoint: chevre.credentials.coa.endpoint,
12
- refreshToken: chevre.credentials.coa.refreshToken
12
+ refreshToken: chevre.credentials.coa.refreshToken,
13
+ useFetch: chevre.credentials.coa.useFetch
13
14
  });
14
15
 
15
16
  async function main() {
@@ -9,7 +9,8 @@ const project = { id: String(process.env.PROJECT_ID) };
9
9
 
10
10
  const coaAuthClient = new COA.auth.RefreshToken({
11
11
  endpoint: chevre.credentials.coa.endpoint,
12
- refreshToken: chevre.credentials.coa.refreshToken
12
+ refreshToken: chevre.credentials.coa.refreshToken,
13
+ useFetch: chevre.credentials.coa.useFetch
13
14
  });
14
15
 
15
16
  async function main() {
@@ -0,0 +1,93 @@
1
+ // tslint:disable:no-console
2
+ import * as moment from 'moment';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ import { chevre } from '../../../lib/index';
6
+
7
+ // const project = { id: String(process.env.PROJECT_ID) };
8
+ const EXCLUDED_PROJECT_ID = process.env.EXCLUDED_PROJECT_ID;
9
+
10
+ // tslint:disable-next-line:max-func-body-length
11
+ async function main() {
12
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
+
14
+ const actionRepo = await chevre.repository.Action.createInstance(mongoose.connection);
15
+
16
+ const cursor = actionRepo.getCursor(
17
+ {
18
+ // 'instrument.transactionNumber': { $exists: false },
19
+ 'object.typeOf': { $eq: chevre.factory.action.authorize.offer.eventService.ObjectType.SeatReservation },
20
+ // 'project.id': { $eq: project.id },
21
+ startDate: {
22
+ $gte: moment()
23
+ // tslint:disable-next-line:no-magic-numbers
24
+ .add(-12, 'months')
25
+ .toDate()
26
+ // $lte: moment('2023-08-01T21:20:43.133Z')
27
+ // .toDate()
28
+ },
29
+ // actionStatus: { $eq: chevre.factory.actionStatusType.CompletedActionStatus }
30
+ 'project.id': {
31
+ $ne: EXCLUDED_PROJECT_ID
32
+ }
33
+ // _id: { $eq: '6500d53f8f5a524f061b4771' }
34
+ },
35
+ {
36
+ startDate: 1,
37
+ object: 1,
38
+ project: 1,
39
+ instrument: 1,
40
+ purpose: 1
41
+ // result: 1
42
+ }
43
+ );
44
+ console.log('actions found');
45
+
46
+ let i = 0;
47
+ let updateCount = 0;
48
+ await cursor.eachAsync(async (doc) => {
49
+ i += 1;
50
+ const action: Pick<
51
+ chevre.factory.action.authorize.offer.eventService.IAction<chevre.factory.service.webAPI.Identifier>,
52
+ 'startDate' | 'object' | 'project' | 'instrument' | 'id' | 'purpose'
53
+ > = doc.toObject();
54
+
55
+ const noPendingTransaction = false;
56
+ const transactionNumber = action.object.pendingTransaction?.transactionNumber;
57
+ // const transactionNumberFromResult = (<any>action).result?.responseBody?.tmpReserveNum;
58
+ if (typeof transactionNumber !== 'string' || transactionNumber.length === 0) {
59
+ // noPendingTransaction = true;
60
+ // console.error('transactionNumber not found.', action.project.id, action.id, transactionNumber, action.startDate, i);
61
+ // if (typeof transactionNumberFromResult !== 'string' || transactionNumberFromResult.length === 0) {
62
+ // throw new Error('transactionNumber & transactionNumberFromResult not found.');
63
+ // } else {
64
+ // transactionNumber = transactionNumberFromResult;
65
+ // }
66
+ throw new Error('transactionNumber & transactionNumberFromResult not found.');
67
+ }
68
+ const alreadyMigrated = typeof action.instrument.transactionNumber === 'string'
69
+ && action.instrument.transactionNumber === transactionNumber;
70
+
71
+ if (alreadyMigrated) {
72
+ console.log('already exist.', action.project.id, action.id, action.purpose.id, transactionNumber, action.startDate, i);
73
+ } else {
74
+ console.log('updating...', action.project.id, action.id, action.purpose.id, transactionNumber, action.startDate, i);
75
+ await actionRepo.fixInstrumentTransactionNumber({
76
+ id: action.id,
77
+ instrument: { transactionNumber },
78
+ ...(noPendingTransaction)
79
+ ? { object: { pendingTransaction: { transactionNumber } } }
80
+ : undefined
81
+ });
82
+ updateCount += 1;
83
+ console.log('updated.', action.project.id, action.id, transactionNumber, action.startDate, i);
84
+ }
85
+ });
86
+
87
+ console.log(i, 'actions checked');
88
+ console.log(updateCount, 'actions updated');
89
+ }
90
+
91
+ main()
92
+ .then()
93
+ .catch(console.error);
@@ -0,0 +1,87 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../lib/index';
5
+
6
+ const project = { id: String(process.env.PROJECT_ID) };
7
+ const OLD_CLIENT = String(process.env.OLD_CLIENT);
8
+ const NEW_CLIENT = String(process.env.NEW_CLIENT);
9
+
10
+ // tslint:disable-next-line:max-func-body-length
11
+ async function main() {
12
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
+
14
+ const eventRepo = await chevre.repository.Event.createInstance(mongoose.connection);
15
+
16
+ const cursor = eventRepo.getCursor(
17
+ {
18
+ 'project.id': { $eq: project.id },
19
+ // _id: { $eq: 'als04raei' },
20
+ 'offers.seller.makesOffer.availableAtOrFrom.id': { $eq: OLD_CLIENT },
21
+ typeOf: { $eq: chevre.factory.eventType.ScreeningEvent }
22
+ },
23
+ {
24
+ _id: 1,
25
+ offers: 1,
26
+ project: 1,
27
+ startDate: 1
28
+ }
29
+ );
30
+ console.log('events found');
31
+
32
+ let i = 0;
33
+ let updateCount = 0;
34
+ await cursor.eachAsync(async (doc) => {
35
+ i += 1;
36
+ const event: Pick<
37
+ chevre.factory.event.screeningEvent.IEvent,
38
+ 'id' | 'offers' | 'project' | 'startDate'
39
+ > = doc.toObject();
40
+
41
+ const eventOffers = <chevre.factory.event.screeningEvent.IOffer>event.offers;
42
+ const alreadyMigrated = eventOffers.seller.makesOffer.some(
43
+ ({ availableAtOrFrom }) => availableAtOrFrom?.some((({ id }) => id === NEW_CLIENT))
44
+ );
45
+ const offerOnOldClient = eventOffers.seller.makesOffer.find(
46
+ ({ availableAtOrFrom }) => availableAtOrFrom?.some((({ id }) => id === OLD_CLIENT))
47
+ );
48
+ if (offerOnOldClient === undefined) {
49
+ throw new Error('!oldClientExists');
50
+ }
51
+
52
+ if (alreadyMigrated) {
53
+ await eventRepo.deleteAvailableAtOrFrom({
54
+ id: String(event.id),
55
+ offers: {
56
+ seller: {
57
+ makesOffer: { availableAtOrFrom: { id: OLD_CLIENT } }
58
+ }
59
+ }
60
+ });
61
+ console.log('already exist.', event.project.id, event.id, event.startDate, i);
62
+ } else {
63
+ const offerNewOldClient: chevre.factory.event.screeningEvent.ISellerMakesOffer = {
64
+ ...offerOnOldClient,
65
+ availableAtOrFrom: [{ id: NEW_CLIENT }]
66
+ };
67
+ console.log('updating...', event.project.id, event.id, event.startDate, i);
68
+ await eventRepo.addAvailableAtOrFrom({
69
+ id: String(event.id),
70
+ offers: {
71
+ seller: {
72
+ makesOffer: offerNewOldClient
73
+ }
74
+ }
75
+ });
76
+ updateCount += 1;
77
+ console.log('updated.', event.project.id, event.id, event.startDate, i);
78
+ }
79
+ });
80
+
81
+ console.log(i, 'offers checked');
82
+ console.log(updateCount, 'offers updated');
83
+ }
84
+
85
+ main()
86
+ .then()
87
+ .catch(console.error);
@@ -0,0 +1,63 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../lib/index';
5
+
6
+ const project = { id: String(process.env.PROJECT_ID) };
7
+ const OLD_CLIENT = String(process.env.OLD_CLIENT);
8
+ const NEW_CLIENT = String(process.env.NEW_CLIENT);
9
+
10
+ // tslint:disable-next-line:max-func-body-length
11
+ async function main() {
12
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
+
14
+ const offerRepo = await chevre.repository.Offer.createInstance(mongoose.connection);
15
+
16
+ const cursor = offerRepo.getCursor(
17
+ {
18
+ 'project.id': { $eq: project.id },
19
+ // _id: { $eq: 'blqm9a6ui' },
20
+ 'offers.availableAtOrFrom.id': { $eq: OLD_CLIENT }
21
+ },
22
+ {
23
+ _id: 1,
24
+ offers: 1,
25
+ project: 1
26
+ }
27
+ );
28
+ console.log('offers found');
29
+
30
+ let i = 0;
31
+ let updateCount = 0;
32
+ await cursor.eachAsync(async (doc) => {
33
+ i += 1;
34
+ const aggregateOffer: chevre.factory.aggregateOffer.IAggregateOffer = doc.toObject();
35
+
36
+ const alreadyMigrated = aggregateOffer.offers[0].availableAtOrFrom?.some(({ id }) => id === NEW_CLIENT);
37
+ console.log(aggregateOffer.offers[0].availableAtOrFrom, i);
38
+
39
+ if (alreadyMigrated) {
40
+ await offerRepo.deleteAvailableAtOrFrom({
41
+ id: String(aggregateOffer.id),
42
+ offers: { availableAtOrFrom: { id: OLD_CLIENT } }
43
+ });
44
+ console.log('already exist.', aggregateOffer.project.id, aggregateOffer.id, i);
45
+ } else {
46
+ console.log('updating...', aggregateOffer.project.id, aggregateOffer.id, i);
47
+ await offerRepo.addAvailableAtOrFrom({
48
+ id: String(aggregateOffer.id),
49
+ identifier: aggregateOffer.offers[0].identifier,
50
+ offers: { availableAtOrFrom: { id: NEW_CLIENT } }
51
+ });
52
+ updateCount += 1;
53
+ console.log('updated.', aggregateOffer.project.id, aggregateOffer.id, i);
54
+ }
55
+ });
56
+
57
+ console.log(i, 'offers checked');
58
+ console.log(updateCount, 'offers updated');
59
+ }
60
+
61
+ main()
62
+ .then()
63
+ .catch(console.error);
@@ -10,14 +10,15 @@ import { chevre } from '../../../lib/index';
10
10
  async function main() {
11
11
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
12
12
 
13
+ const acceptedOfferRepo = await chevre.repository.AcceptedOffer.createInstance(mongoose.connection);
13
14
  const orderRepo = await chevre.repository.Order.createInstance(mongoose.connection);
14
15
 
15
16
  const cursor = orderRepo.getCursor(
16
17
  {
17
- 'paymentMethods.paymentMethodId': { $exists: true },
18
- 'paymentMethods.paymentMethod.identifier': { $exists: false },
18
+ // 'acceptedOffers.serialNumber': { $exists: false },
19
+ 'acceptedOffers.itemOffered.reservationNumber': { $exists: true },
19
20
  // 'project.id': { $eq: project.id },
20
- // orderNumber: { $eq: 'KNR1-3961294-9087043' },
21
+ // orderNumber: { $eq: 'KOB1-3749861-4732433' },
21
22
  orderDate: {
22
23
  $gte: moment()
23
24
  // tslint:disable-next-line:no-magic-numbers
@@ -33,7 +34,7 @@ async function main() {
33
34
  orderDate: 1,
34
35
  orderNumber: 1,
35
36
  project: 1,
36
- paymentMethods: 1
37
+ acceptedOffers: 1
37
38
  }
38
39
  );
39
40
  console.log('orders found');
@@ -45,28 +46,26 @@ async function main() {
45
46
  const order: Pick<
46
47
  chevre.factory.order.IOrder,
47
48
  'orderDate' | 'orderNumber' | 'project' | 'paymentMethods'
48
- > = doc.toObject();
49
+ > & {
50
+ acceptedOffers: chevre.factory.order.IAcceptedOffer<chevre.factory.order.IReservation>[];
51
+ } = doc.toObject();
49
52
 
50
- const noPayment = order.paymentMethods.length === 0;
51
- const alreadyMigrated = order.paymentMethods.every((invoice) => {
52
- return typeof invoice.paymentMethod?.identifier === 'string'
53
- && invoice.paymentMethod?.identifier.length > 0;
54
- // && invoice.paymentMethod.identifier === (<any>invoice).typeOf;
53
+ const alreadyMigrated = order.acceptedOffers.every((offer) => {
54
+ return typeof offer.serialNumber === 'string'
55
+ && offer.serialNumber.length > 0
56
+ && offer.itemOffered.reservationNumber === offer.serialNumber;
55
57
  });
56
58
 
57
- if (noPayment) {
58
- console.log('noPayment.', order.project.id, order.orderNumber, order.orderDate, i);
59
- } else if (alreadyMigrated) {
59
+ if (alreadyMigrated) {
60
60
  console.log('already exist.', order.project.id, order.orderNumber, order.orderDate, i);
61
61
  } else {
62
- console.log('updating...', order.project.id, order.orderNumber, order.orderDate, i);
63
- for (const invoice of order.paymentMethods) {
64
- await orderRepo.fixPaymentMethodIdentifier({
62
+ for (const offer of order.acceptedOffers) {
63
+ console.log('updating...', order.project.id, order.orderNumber, order.orderDate, offer.itemOffered.reservationNumber, i);
64
+ await acceptedOfferRepo.fixSerialNumber({
65
65
  project: { id: order.project.id },
66
66
  orderNumber: order.orderNumber,
67
- invoice: {
68
- paymentMethodId: invoice.paymentMethodId,
69
- paymentMethod: { identifier: (<any>invoice).typeOf }
67
+ acceptedOffers: {
68
+ serialNumber: offer.itemOffered.reservationNumber
70
69
  }
71
70
  });
72
71
  }
@@ -0,0 +1,36 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../lib/index';
5
+
6
+ const project = { id: String(process.env.PROJECT_ID) };
7
+
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI);
10
+
11
+ (await chevre.service.order.createService())
12
+ .onAssetTransactionStatusChanged({
13
+ project: { id: project.id, typeOf: chevre.factory.organizationType.Project },
14
+ object: {
15
+ typeOf: chevre.factory.assetTransactionType.Reserve,
16
+ transactionNumber: '863918387495116',
17
+ status: chevre.factory.transactionStatusType.Confirmed
18
+ },
19
+ purpose: {
20
+ confirmationNumber: '',
21
+ orderNumber: 'CIN1-3748070-2008463',
22
+ typeOf: chevre.factory.order.OrderType.Order
23
+ },
24
+ useOnOrderStatusChanged: true
25
+ })({
26
+ assetTransaction: await chevre.repository.AssetTransaction.createInstance(mongoose.connection),
27
+ acceptedOffer: await chevre.repository.AcceptedOffer.createInstance(mongoose.connection),
28
+ order: await chevre.repository.Order.createInstance(mongoose.connection),
29
+ task: await chevre.repository.Task.createInstance(mongoose.connection),
30
+ transaction: await chevre.repository.Transaction.createInstance(mongoose.connection)
31
+ });
32
+ }
33
+
34
+ main()
35
+ .then(console.log)
36
+ .catch(console.error);
@@ -0,0 +1,39 @@
1
+ // tslint:disable:no-implicit-dependencies no-console
2
+ import { chevre } from '../../../lib/index';
3
+
4
+ import * as moment from 'moment';
5
+ import * as mongoose from 'mongoose';
6
+
7
+ const project = { id: String(process.env.PROJECT_ID) };
8
+
9
+ async function main() {
10
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
11
+
12
+ const taskRepo = await chevre.repository.Task.createInstance(mongoose.connection);
13
+ const result = await taskRepo.taskModel.updateMany(
14
+ {
15
+ status: { $eq: chevre.factory.taskStatus.Aborted },
16
+ lastTriedAt: {
17
+ $gt: moment()
18
+ .add(-1, 'day')
19
+ .toDate()
20
+ },
21
+ name: { $eq: chevre.factory.taskName.TriggerWebhook },
22
+ 'project.id': { $eq: project.id }
23
+ },
24
+ {
25
+ $set: {
26
+ status: chevre.factory.taskStatus.Ready,
27
+ remainingNumberOfTries: 20
28
+ }
29
+ }
30
+ )
31
+ .exec();
32
+ console.log('result:', result);
33
+ }
34
+
35
+ main()
36
+ .then(() => {
37
+ console.log('success!');
38
+ })
39
+ .catch(console.error);
@@ -5,20 +5,26 @@ import * as mongoose from 'mongoose';
5
5
 
6
6
  // const project = { id: String(process.env.PROJECT_ID) };
7
7
 
8
+ mongoose.Model.on('index', (...args) => {
9
+ console.error('******** index event emitted. ********\n', args);
10
+ });
11
+
8
12
  async function main() {
9
13
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
14
 
11
15
  const actionRepo = await chevre.repository.Action.createInstance(mongoose.connection);
12
16
  const actions = await actionRepo.search(
13
17
  {
14
- typeOf: { $eq: chevre.factory.actionType.CheckAction },
18
+ limit: 1,
19
+ // typeOf: { $eq: chevre.factory.actionType.CheckAction },
15
20
  // project: { id: { $eq: project.id } },
16
- object: {
17
- movieTickets: {
18
- identifier: { $eq: '0947524082' },
19
- serviceOutput: { reservationFor: { id: { $eq: 'clhvvbpyn' } } }
20
- }
21
- }
21
+ // object: {
22
+ // movieTickets: {
23
+ // identifier: { $eq: '0947524082' },
24
+ // serviceOutput: { reservationFor: { id: { $eq: 'clhvvbpyn' } } }
25
+ // }
26
+ // }
27
+ instrument: { transactionNumber: { $eq: 'x' } }
22
28
  },
23
29
  ['_id'],
24
30
  []
@@ -5,6 +5,10 @@ import { chevre } from '../../../lib/index';
5
5
 
6
6
  const project = { id: String(process.env.PROJECT_ID) };
7
7
 
8
+ mongoose.Model.on('index', (...args) => {
9
+ console.error('******** index event emitted. ********\n', args);
10
+ });
11
+
8
12
  async function main() {
9
13
  await mongoose.connect(<string>process.env.MONGOLAB_URI);
10
14
 
@@ -16,10 +20,16 @@ async function main() {
16
20
  limit: 10,
17
21
  page: 1,
18
22
  project: { id: { $eq: project.id } },
19
- orderNumber: { $eq: 'CIN3-0760465-8981560' },
20
- acceptedOffers: { itemOffered: { typeOf: { $in: [chevre.factory.reservationType.EventReservation] } } }
23
+ orderNumber: { $eq: 'CIN7-9247770-0699829' },
24
+ acceptedOffers: {
25
+ itemOffered: {
26
+ typeOf: { $in: [chevre.factory.reservationType.EventReservation] },
27
+ reservationFor: { id: { $in: ['blpw1ew8f'] } },
28
+ reservedTicket: { ticketedSeat: { seatNumber: { $in: ['A-26', 'xxx'] } } }
29
+ }
30
+ }
21
31
  },
22
- ['itemOffered', 'id']
32
+ ['itemOffered', 'priceSpecification']
23
33
  );
24
34
  // tslint:disable-next-line:no-null-keyword
25
35
  console.dir(acceptedOffers, { depth: 1 });
@@ -5,21 +5,19 @@ import { chevre } from '../../../lib/index';
5
5
 
6
6
  const project = { id: String(process.env.PROJECT_ID) };
7
7
 
8
+ mongoose.Model.on('index', (...args) => {
9
+ console.error('******** index event emitted. ********\n', args);
10
+ });
11
+
8
12
  async function main() {
9
13
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
14
 
11
- const orderRepo = await chevre.repository.Order.createInstance(mongoose.connection);
15
+ const indexes = await mongoose.connection.db.collection('orders')
16
+ .indexes();
17
+ // console.log(indexes);
18
+ console.log(indexes.length, 'indexes found');
12
19
 
13
- const order = await orderRepo.findByOrderNumber({
14
- orderNumber: 'CIN4-3943271-4221863',
15
- project: { id: project.id },
16
- inclusion: [
17
- // 'project', 'typeOf', 'orderNumber', 'dateReturned', 'id',
18
- // 'customer', 'returner', 'seller', 'price', 'priceCurrency', 'orderDate'
19
- ],
20
- exclusion: ['acceptedOffers']
21
- });
22
- console.log(order);
20
+ const orderRepo = await chevre.repository.Order.createInstance(mongoose.connection);
23
21
 
24
22
  const orders = await orderRepo.search(
25
23
  {
@@ -30,10 +28,10 @@ async function main() {
30
28
  // itemOffered: {
31
29
  // issuedThrough: { typeOf: { $eq: chevre.factory.product.ProductType.MembershipService } }
32
30
  // }
33
- },
34
- orderedItem: {
35
- $size: 3
36
31
  }
32
+ // orderedItem: {
33
+ // $size: 3
34
+ // }
37
35
  // paymentMethods: {
38
36
  // paymentMethod: { identifier: { $in: ['Cash'] } }
39
37
  // additionalProperty: {
@@ -49,7 +47,7 @@ async function main() {
49
47
  customer: 1
50
48
  }
51
49
  );
52
- console.log('orders found', orders);
50
+ // console.log('orders found', orders);
53
51
  console.log(orders.length, 'orders found');
54
52
  }
55
53
 
@@ -0,0 +1,28 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI);
8
+
9
+ const acceptedOfferRepo = await chevre.repository.AcceptedOffer.createInstance(mongoose.connection);
10
+
11
+ const result = await acceptedOfferRepo.searchSlicedAcceptedOffersByOrderNumber(
12
+ {
13
+ orderNumber: { $eq: 'CIN1-3748070-2008463' },
14
+ project: { id: { $eq: String(process.env.PROJECT_ID) } },
15
+ // tslint:disable-next-line:no-magic-numbers
16
+ $slice: [0, 2]
17
+ }
18
+ );
19
+ console.log(result);
20
+ console.log(result.acceptedOffers.map((offer) => {
21
+ return `${(<any>offer.itemOffered).id}`;
22
+ }));
23
+ console.log(result.acceptedOffers.length);
24
+ }
25
+
26
+ main()
27
+ .then(console.log)
28
+ .catch(console.error);
@@ -0,0 +1,37 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../lib/index';
5
+
6
+ const project = { id: String(process.env.PROJECT_ID) };
7
+
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI);
10
+
11
+ (await chevre.service.order.createService())
12
+ .sendOrder({
13
+ agent: { id: project.id, typeOf: chevre.factory.organizationType.Project },
14
+ project: { id: project.id },
15
+ object: {
16
+ confirmationNumber: '57761',
17
+ orderNumber: 'CIN1-3748070-2008463',
18
+ previousOrderStatus: chevre.factory.orderStatus.OrderInTransit,
19
+ acceptedOffers: {
20
+ limit: 1,
21
+ page: 1
22
+ }
23
+ },
24
+ useOnOrderStatusChanged: false
25
+ })({
26
+ acceptedOffer: await chevre.repository.AcceptedOffer.createInstance(mongoose.connection),
27
+ action: await chevre.repository.Action.createInstance(mongoose.connection),
28
+ order: await chevre.repository.Order.createInstance(mongoose.connection),
29
+ ownershipInfo: await chevre.repository.OwnershipInfo.createInstance(mongoose.connection),
30
+ task: await chevre.repository.Task.createInstance(mongoose.connection),
31
+ transaction: await chevre.repository.Transaction.createInstance(mongoose.connection)
32
+ });
33
+ }
34
+
35
+ main()
36
+ .then(console.log)
37
+ .catch(console.error);