@chevre/domain 21.2.0-alpha.5 → 21.2.0-alpha.50

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 (211) hide show
  1. package/example/src/chevre/aggregation/aggregateSystem.ts +58 -31
  2. package/example/src/chevre/countDelayedTasks.ts +17 -0
  3. package/example/src/chevre/countDelayedTransactions.ts +60 -0
  4. package/example/src/chevre/countMoneyTransferTransaction.ts +36 -0
  5. package/example/src/chevre/createManyEventsIfNotExist.ts +4 -1
  6. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  7. package/example/src/chevre/migrateStockHolderKeys.ts +89 -0
  8. package/example/src/chevre/saveTasks.ts +13 -10
  9. package/example/src/chevre/searchAbortedTasks.ts +36 -0
  10. package/example/src/chevre/task/executeTasks.ts +26 -0
  11. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  12. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  13. package/example/src/chevre/transaction/startExportTasks.ts +20 -0
  14. package/example/src/chevre/updateTransaction.ts +1 -1
  15. package/lib/chevre/credentials.d.ts +1 -0
  16. package/lib/chevre/credentials.js +2 -1
  17. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  18. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  19. package/lib/chevre/eventEmitter/task.d.ts +18 -0
  20. package/lib/chevre/eventEmitter/task.js +25 -0
  21. package/lib/chevre/eventEmitter/transaction.d.ts +21 -0
  22. package/lib/chevre/eventEmitter/transaction.js +25 -0
  23. package/lib/chevre/eventEmitter.d.ts +4 -0
  24. package/lib/chevre/eventEmitter.js +9 -0
  25. package/lib/chevre/index.d.ts +3 -2
  26. package/lib/chevre/index.js +5 -3
  27. package/lib/chevre/repo/account.js +0 -4
  28. package/lib/chevre/repo/accountTitle.js +0 -4
  29. package/lib/chevre/repo/accountTransaction.d.ts +3 -11
  30. package/lib/chevre/repo/accountTransaction.js +1 -58
  31. package/lib/chevre/repo/accountingReport.js +0 -4
  32. package/lib/chevre/repo/action.d.ts +12 -1
  33. package/lib/chevre/repo/action.js +9 -29
  34. package/lib/chevre/repo/additionalProperty.js +0 -4
  35. package/lib/chevre/repo/aggregation.js +0 -4
  36. package/lib/chevre/repo/assetTransaction.d.ts +22 -7
  37. package/lib/chevre/repo/assetTransaction.js +173 -55
  38. package/lib/chevre/repo/categoryCode.js +0 -4
  39. package/lib/chevre/repo/code.js +0 -4
  40. package/lib/chevre/repo/comment.d.ts +4 -1
  41. package/lib/chevre/repo/comment.js +20 -9
  42. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  43. package/lib/chevre/repo/confirmationNumber.js +3 -15
  44. package/lib/chevre/repo/creativeWork.d.ts +1 -3
  45. package/lib/chevre/repo/creativeWork.js +0 -4
  46. package/lib/chevre/repo/customer.js +0 -4
  47. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  48. package/lib/chevre/repo/emailMessage.js +0 -4
  49. package/lib/chevre/repo/event.d.ts +5 -1
  50. package/lib/chevre/repo/event.js +0 -4
  51. package/lib/chevre/repo/member.js +0 -4
  52. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  53. package/lib/chevre/repo/merchantReturnPolicy.js +0 -4
  54. package/lib/chevre/repo/mongoose/schemas/account.d.ts +5 -2
  55. package/lib/chevre/repo/mongoose/schemas/account.js +1 -0
  56. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +30 -3
  57. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -0
  58. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +32 -3
  59. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +2 -1
  60. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +14 -3
  61. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -0
  62. package/lib/chevre/repo/mongoose/schemas/action.d.ts +44 -3
  63. package/lib/chevre/repo/mongoose/schemas/action.js +2 -1
  64. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +18 -3
  65. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -0
  66. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +5 -2
  67. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -0
  68. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +45 -3
  69. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +3 -1
  70. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +20 -3
  71. package/lib/chevre/repo/mongoose/schemas/authorization.js +2 -1
  72. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +26 -3
  73. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -0
  74. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +28 -3
  75. package/lib/chevre/repo/mongoose/schemas/comments.js +2 -1
  76. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +44 -3
  77. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -0
  78. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +26 -3
  79. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -0
  80. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +22 -3
  81. package/lib/chevre/repo/mongoose/schemas/emailMessages.js +1 -0
  82. package/lib/chevre/repo/mongoose/schemas/event.d.ts +72 -3
  83. package/lib/chevre/repo/mongoose/schemas/event.js +1 -0
  84. package/lib/chevre/repo/mongoose/schemas/member.d.ts +14 -3
  85. package/lib/chevre/repo/mongoose/schemas/member.js +1 -0
  86. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +22 -3
  87. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -0
  88. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +66 -3
  89. package/lib/chevre/repo/mongoose/schemas/offer.js +1 -0
  90. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +28 -3
  91. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -0
  92. package/lib/chevre/repo/mongoose/schemas/order.d.ts +52 -3
  93. package/lib/chevre/repo/mongoose/schemas/order.js +2 -1
  94. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +26 -3
  95. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +2 -1
  96. package/lib/chevre/repo/mongoose/schemas/place.d.ts +50 -3
  97. package/lib/chevre/repo/mongoose/schemas/place.js +1 -0
  98. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +30 -3
  99. package/lib/chevre/repo/mongoose/schemas/priceSpecification.js +1 -0
  100. package/lib/chevre/repo/mongoose/schemas/product.d.ts +32 -3
  101. package/lib/chevre/repo/mongoose/schemas/product.js +1 -0
  102. package/lib/chevre/repo/mongoose/schemas/project.d.ts +24 -3
  103. package/lib/chevre/repo/mongoose/schemas/project.js +1 -0
  104. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +62 -3
  105. package/lib/chevre/repo/mongoose/schemas/reservation.js +2 -1
  106. package/lib/chevre/repo/mongoose/schemas/role.d.ts +12 -3
  107. package/lib/chevre/repo/mongoose/schemas/role.js +1 -0
  108. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +32 -3
  109. package/lib/chevre/repo/mongoose/schemas/seller.js +1 -0
  110. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +12 -3
  111. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +2 -1
  112. package/lib/chevre/repo/mongoose/schemas/task.d.ts +31 -3
  113. package/lib/chevre/repo/mongoose/schemas/task.js +3 -1
  114. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +22 -3
  115. package/lib/chevre/repo/mongoose/schemas/telemetry.js +1 -0
  116. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +41 -3
  117. package/lib/chevre/repo/mongoose/schemas/transaction.js +3 -1
  118. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +12 -3
  119. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -0
  120. package/lib/chevre/repo/offer.js +0 -5
  121. package/lib/chevre/repo/offerCatalog.js +0 -4
  122. package/lib/chevre/repo/order.d.ts +25 -0
  123. package/lib/chevre/repo/order.js +5 -4
  124. package/lib/chevre/repo/ownershipInfo.js +0 -4
  125. package/lib/chevre/repo/permit.js +0 -4
  126. package/lib/chevre/repo/place.d.ts +5 -1
  127. package/lib/chevre/repo/place.js +1 -10
  128. package/lib/chevre/repo/priceSpecification.js +0 -4
  129. package/lib/chevre/repo/product.js +0 -4
  130. package/lib/chevre/repo/project.js +0 -4
  131. package/lib/chevre/repo/reservation.js +0 -4
  132. package/lib/chevre/repo/role.js +0 -4
  133. package/lib/chevre/repo/seller.js +0 -4
  134. package/lib/chevre/repo/serviceOutput.js +0 -4
  135. package/lib/chevre/repo/stockHolder.js +30 -0
  136. package/lib/chevre/repo/task.d.ts +38 -2
  137. package/lib/chevre/repo/task.js +96 -10
  138. package/lib/chevre/repo/telemetry.js +0 -4
  139. package/lib/chevre/repo/transaction.d.ts +23 -3
  140. package/lib/chevre/repo/transaction.js +174 -58
  141. package/lib/chevre/repo/trip.js +0 -4
  142. package/lib/chevre/service/aggregation/system.d.ts +67 -22
  143. package/lib/chevre/service/aggregation/system.js +101 -89
  144. package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -5
  145. package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -1
  146. package/lib/chevre/service/assetTransaction/pay.js +10 -4
  147. package/lib/chevre/service/assetTransaction/refund.js +1 -1
  148. package/lib/chevre/service/assetTransaction/registerService.js +1 -2
  149. package/lib/chevre/service/assetTransaction/reserve.js +1 -1
  150. package/lib/chevre/service/assetTransaction.d.ts +6 -2
  151. package/lib/chevre/service/assetTransaction.js +9 -5
  152. package/lib/chevre/service/notification/factory.js +2 -2
  153. package/lib/chevre/service/notification.d.ts +3 -1
  154. package/lib/chevre/service/notification.js +41 -7
  155. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  156. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  157. package/lib/chevre/service/offer.js +1 -1
  158. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -1
  159. package/lib/chevre/service/order/placeOrder.js +1 -1
  160. package/lib/chevre/service/order/returnOrder.js +1 -5
  161. package/lib/chevre/service/order/sendOrder.js +1 -1
  162. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  163. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  164. package/lib/chevre/service/payment/any.js +60 -10
  165. package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -2
  166. package/lib/chevre/service/payment/movieTicket/validation.js +12 -25
  167. package/lib/chevre/service/payment/movieTicket.d.ts +4 -1
  168. package/lib/chevre/service/payment/movieTicket.js +4 -3
  169. package/lib/chevre/service/product.js +1 -5
  170. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  171. package/lib/chevre/service/report/telemetry.js +21 -24
  172. package/lib/chevre/service/reserve/cancelReservation.js +0 -2
  173. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +0 -3
  174. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +20 -20
  175. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  176. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  177. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  178. package/lib/chevre/service/reserve/useReservation.js +1 -8
  179. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  180. package/lib/chevre/service/task/returnPayTransaction.js +1 -5
  181. package/lib/chevre/service/task/voidReserveTransaction.js +3 -1
  182. package/lib/chevre/service/task.d.ts +9 -0
  183. package/lib/chevre/service/task.js +43 -4
  184. package/lib/chevre/service/transaction/moneyTransfer.js +4 -4
  185. package/lib/chevre/service/transaction/orderProgramMembership.js +2 -1
  186. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +30 -29
  187. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  188. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  189. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  190. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  191. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  192. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  193. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  194. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  195. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  196. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  197. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  198. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  199. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  200. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  201. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  202. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +1 -0
  203. package/lib/chevre/service/transaction/placeOrderInProgress.js +17 -10
  204. package/lib/chevre/service/transaction/returnOrder.js +1 -5
  205. package/lib/chevre/service/transaction.d.ts +6 -0
  206. package/lib/chevre/service/transaction.js +9 -7
  207. package/lib/chevre/settings.d.ts +4 -1
  208. package/lib/chevre/settings.js +11 -4
  209. package/package.json +5 -5
  210. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  211. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
@@ -7,7 +7,7 @@ export type IUnitPriceSpecification = factory.priceSpecification.IPriceSpecifica
7
7
  /**
8
8
  * 取引が確定可能な状態かどうかをチェックする
9
9
  */
10
- export declare function validateTransaction(transaction: factory.transaction.placeOrder.ITransaction): void;
10
+ export declare function validateTransaction(transaction: factory.transaction.placeOrder.ITransaction, authorizeActions: factory.action.authorize.IAction<factory.action.authorize.IAttributes<any, any>>[]): void;
11
11
  export type IConfirmationNumberGenerator = (order: factory.order.IOrder) => string;
12
12
  export type IOrderURLGenerator = (order: factory.order.IOrder) => string;
13
13
  export type IResultOrderParams = factory.transaction.placeOrder.IResultOrderParams & {
@@ -46,4 +46,5 @@ export declare function validatePaymentMethods(params: {
46
46
  export declare function validateEventOffers(params: {
47
47
  transaction: factory.transaction.placeOrder.ITransaction;
48
48
  order: factory.order.IOrder;
49
+ authorizeActions: factory.action.authorize.IAction<factory.action.authorize.IAttributes<any, any>>[];
49
50
  }): void;
@@ -13,18 +13,18 @@ const debug = createDebug('cinerino-domain:service');
13
13
  /**
14
14
  * 取引が確定可能な状態かどうかをチェックする
15
15
  */
16
- function validateTransaction(transaction) {
16
+ function validateTransaction(transaction, authorizeActions) {
17
17
  validateProfile(transaction);
18
- validatePrice(transaction);
18
+ validatePrice(transaction, authorizeActions);
19
19
  // 利用可能な通貨単位に対して取引検証
20
- validateMonetaryAmount(transaction);
20
+ validateMonetaryAmount(authorizeActions);
21
21
  // 利用可能なMovieTicketIF決済方法タイプに対して動的にコーディング
22
22
  // 検証すべきMovieTicketIF決済方法タイプのリストは、決済承認アクションのresult.issuedThrough.typeOf: MovieTicketで抽出できるのでは?
23
- const movieTicketPaymentMethodTypes = findMovieTicketPaymentMethodTypesFromTransaction(transaction);
23
+ const movieTicketPaymentMethodTypes = findMovieTicketPaymentMethodTypesFromTransaction(authorizeActions);
24
24
  if (Array.isArray(movieTicketPaymentMethodTypes) && movieTicketPaymentMethodTypes.length > 0) {
25
25
  movieTicketPaymentMethodTypes.forEach((paymentMethodType) => {
26
26
  try {
27
- (0, validateMovieTicket_1.validateMovieTicket)(paymentMethodType, transaction);
27
+ (0, validateMovieTicket_1.validateMovieTicket)(paymentMethodType, transaction, authorizeActions);
28
28
  }
29
29
  catch (error) {
30
30
  // 検証結果をlog(2022-06-04~)
@@ -35,11 +35,13 @@ function validateTransaction(transaction) {
35
35
  });
36
36
  }
37
37
  // 決済URLが発行されている場合、検証
38
- validatePaymentUrl(transaction);
38
+ validatePaymentUrl(transaction, authorizeActions);
39
39
  }
40
40
  exports.validateTransaction = validateTransaction;
41
- function findMovieTicketPaymentMethodTypesFromTransaction(transaction) {
42
- const authorizeActions = transaction.object.authorizeActions;
41
+ function findMovieTicketPaymentMethodTypesFromTransaction(
42
+ // transaction: factory.transaction.placeOrder.ITransaction,
43
+ authorizeActions) {
44
+ // const authorizeActions = transaction.object.authorizeActions;
43
45
  const authorizeMovieTicketPaymentActions = authorizeActions.filter((a) => {
44
46
  var _a, _b;
45
47
  return a.actionStatus === factory.actionStatusType.CompletedActionStatus
@@ -86,8 +88,8 @@ function validateProfile(transaction) {
86
88
  throw new factory.errors.Argument('Transaction', 'Customer Profile Required');
87
89
  }
88
90
  }
89
- function validatePrice(transaction) {
90
- const authorizeActions = transaction.object.authorizeActions;
91
+ function validatePrice(transaction, authorizeActions) {
92
+ // const authorizeActions = transaction.object.authorizeActions;
91
93
  let priceByAgent = 0;
92
94
  let priceBySeller = 0;
93
95
  // 決済承認を確認
@@ -110,9 +112,9 @@ function validatePrice(transaction) {
110
112
  throw new factory.errors.Argument('Transaction', 'Transaction cannot be confirmed because prices are not matched');
111
113
  }
112
114
  }
113
- function validatePaymentUrl(transaction) {
115
+ function validatePaymentUrl(transaction, authorizeActions) {
116
+ // const authorizeActions = transaction.object.authorizeActions;
114
117
  var _a, _b;
115
- const authorizeActions = transaction.object.authorizeActions;
116
118
  // 決済URLが発行されている場合、検証
117
119
  const paymentMethodId = (_a = transaction.object.paymentMethods) === null || _a === void 0 ? void 0 : _a.paymentMethodId;
118
120
  const paymentUrl = (_b = transaction.object.paymentMethods) === null || _b === void 0 ? void 0 : _b.paymentUrl;
@@ -135,10 +137,10 @@ function validatePaymentUrl(transaction) {
135
137
  /**
136
138
  * JPY以外の通貨について取引を検証する
137
139
  */
138
- function validateMonetaryAmount(transaction
139
- // currencies: string[]
140
- ) {
141
- const authorizeActions = transaction.object.authorizeActions;
140
+ function validateMonetaryAmount(
141
+ // transaction: factory.transaction.placeOrder.ITransaction,
142
+ authorizeActions) {
143
+ // const authorizeActions = transaction.object.authorizeActions;
142
144
  const authorizeMonetaryAmountActions = authorizeActions
143
145
  .filter((a) => {
144
146
  var _a, _b;
@@ -216,7 +218,11 @@ exports.validatePaymentMethods = validatePaymentMethods;
216
218
  * イベントオファー適用条件確認
217
219
  */
218
220
  function validateEventOffers(params) {
219
- const seatReservationAuthorizeActions = params.transaction.object.authorizeActions
221
+ // const seatReservationAuthorizeActions = <IAuthorizeSeatReservationOffer[]>
222
+ // params.transaction.object.authorizeActions
223
+ // .filter((a) => a.actionStatus === factory.actionStatusType.CompletedActionStatus)
224
+ // .filter((a) => a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation);
225
+ const seatReservationAuthorizeActions = params.authorizeActions
220
226
  .filter((a) => a.actionStatus === factory.actionStatusType.CompletedActionStatus)
221
227
  .filter((a) => a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation);
222
228
  seatReservationAuthorizeActions.forEach((a) => {
@@ -60,6 +60,7 @@ export type IConfirmParams = factory.transaction.placeOrder.IConfirmParams & {
60
60
  result: {
61
61
  order: IResultOrderParams;
62
62
  };
63
+ saveAuthorizeActions: boolean;
63
64
  };
64
65
  /**
65
66
  * 注文取引を確定する
@@ -95,14 +95,15 @@ function confirm(params) {
95
95
  throw new factory.errors.Forbidden('Transaction not yours');
96
96
  }
97
97
  // 取引に対する全ての承認アクションをマージ
98
- transaction.object.authorizeActions = yield searchAuthorizeActions(params)(repos);
98
+ const authorizeActions = yield searchAuthorizeActions(params)(repos);
99
+ // transaction.object.authorizeActions = authorizeActions;
99
100
  // 注文番号を発行
100
101
  const orderNumber = yield publishOrderNumberIfNotExist({
101
102
  project: { id: transaction.project.id },
102
103
  id: transaction.id,
103
104
  object: { orderDate: params.result.order.orderDate }
104
105
  })(repos);
105
- const result = createResult(Object.assign(Object.assign({}, params), { orderNumber, transaction: transaction }));
106
+ const result = createResult(Object.assign(Object.assign({}, params), { orderNumber, transaction: transaction, authorizeActions }));
106
107
  // デフォルトEメールメッセージを検索
107
108
  let emailMessageOnOrderSent;
108
109
  if (repos.emailMessage !== undefined) {
@@ -119,14 +120,16 @@ function confirm(params) {
119
120
  order: result.order,
120
121
  potentialActions: params.potentialActions,
121
122
  transaction: transaction,
122
- emailMessage: emailMessageOnOrderSent
123
+ emailMessage: emailMessageOnOrderSent,
124
+ authorizeActions
123
125
  });
124
126
  // ステータス変更
125
127
  try {
126
128
  yield repos.transaction.confirm({
127
129
  typeOf: transaction.typeOf,
128
130
  id: transaction.id,
129
- authorizeActions: transaction.object.authorizeActions,
131
+ // 保管有無を設定化(2023-05-16~)
132
+ authorizeActions: (params.saveAuthorizeActions) ? authorizeActions : [],
130
133
  result: result,
131
134
  potentialActions: potentialActions
132
135
  });
@@ -214,18 +217,20 @@ exports.publishOrderNumberIfNotExist = publishOrderNumberIfNotExist;
214
217
  function createResult(params) {
215
218
  const transaction = params.transaction;
216
219
  // 取引の確定条件が全て整っているかどうか確認
217
- (0, validation_1.validateTransaction)(transaction);
220
+ (0, validation_1.validateTransaction)(transaction, params.authorizeActions);
218
221
  // 注文作成
219
222
  const order = (0, result_1.createOrder)({
220
223
  orderNumber: params.orderNumber,
221
224
  transaction: transaction,
222
225
  orderDate: params.result.order.orderDate,
223
226
  orderStatus: factory.orderStatus.OrderProcessing,
224
- isGift: false
227
+ isGift: false,
228
+ authorizeActions: params.authorizeActions
225
229
  });
226
230
  (0, validation_1.validateEventOffers)({
227
231
  transaction: transaction,
228
- order: order
232
+ order: order,
233
+ authorizeActions: params.authorizeActions
229
234
  });
230
235
  // 注文アイテム数制限確認
231
236
  (0, validation_1.validateNumItems)({
@@ -252,7 +257,9 @@ function searchAuthorizeActions(params) {
252
257
  purpose: {
253
258
  typeOf: factory.transactionType.PlaceOrder,
254
259
  id: params.id
255
- }
260
+ },
261
+ // Completedに絞る(2023-05-16~)
262
+ actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus }
256
263
  });
257
264
  // 万が一このプロセス中に他処理が発生してもそれらを無視するように、endDateでフィルタリング
258
265
  authorizeActions = authorizeActions.filter((a) => (a.endDate !== undefined && a.endDate < params.result.order.orderDate));
@@ -311,7 +318,7 @@ function authorizeAward(params) {
311
318
  if (Array.isArray(givePointAwardParams)) {
312
319
  const pointAwardIdentifiers = givePointAwardParams.map((g) => { var _a; return String((_a = g.object) === null || _a === void 0 ? void 0 : _a.identifier); });
313
320
  // 取引にインセンティブ付与アクションパラメータを保管する
314
- yield repos.transaction.findByIdAndUpdate({
321
+ yield repos.transaction.findByIdAndUpdateInProgress({
315
322
  id: transaction.id,
316
323
  update: {
317
324
  $set: {
@@ -339,7 +346,7 @@ function voidAward(params) {
339
346
  if (transaction.agent.id !== params.agent.id) {
340
347
  throw new factory.errors.Forbidden('Transaction not yours');
341
348
  }
342
- yield repos.transaction.findByIdAndUpdate({
349
+ yield repos.transaction.findByIdAndUpdateInProgress({
343
350
  id: transaction.id,
344
351
  update: {
345
352
  $unset: {
@@ -384,11 +384,7 @@ function exportTasksById(params) {
384
384
  transaction,
385
385
  runsAt: taskRunsAt
386
386
  });
387
- // saveManyに変更(2023-02-01~)
388
- yield repos.task.saveMany(taskAttributes);
389
- // await Promise.all(taskAttributes.map(async (taskAttribute) => {
390
- // await repos.task.save(taskAttribute);
391
- // }));
387
+ yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
392
388
  });
393
389
  }
394
390
  exports.exportTasksById = exportTasksById;
@@ -45,6 +45,12 @@ export declare function exportTasks<T extends factory.transactionType>(params: {
45
45
  typeOf?: {
46
46
  $in: T[];
47
47
  };
48
+ id?: string;
49
+ tasksExportAction?: {
50
+ agent: {
51
+ name: string;
52
+ };
53
+ };
48
54
  }): IExportTasksOperation<void>;
49
55
  /**
50
56
  * 取引に関わるリソースを削除する
@@ -19,6 +19,7 @@ const MoneyTransferTransactionService = require("./transaction/moneyTransfer");
19
19
  const PlaceOrderTransactionService = require("./transaction/placeOrder");
20
20
  const PlaceOrderInProgressTransactionService = require("./transaction/placeOrderInProgress");
21
21
  const ReturnOrderTransactionService = require("./transaction/returnOrder");
22
+ const settings_1 = require("../settings");
22
23
  exports.moneyTransfer = MoneyTransferTransactionService;
23
24
  exports.placeOrder = PlaceOrderTransactionService;
24
25
  exports.placeOrderInProgress = PlaceOrderInProgressTransactionService;
@@ -77,15 +78,17 @@ exports.updateAgent = updateAgent;
77
78
  */
78
79
  function exportTasks(params) {
79
80
  return (repos) => __awaiter(this, void 0, void 0, function* () {
80
- const transaction = yield repos.transaction.startExportTasks({
81
- project: params.project,
82
- typeOf: params.typeOf,
83
- status: params.status
84
- });
81
+ var _a;
82
+ const transaction = yield repos.transaction.startExportTasks(Object.assign({ project: params.project, typeOf: params.typeOf, status: params.status, tasksExportAction: {
83
+ agent: {
84
+ name: (typeof ((_a = params.tasksExportAction) === null || _a === void 0 ? void 0 : _a.agent.name) === 'string')
85
+ ? params.tasksExportAction.agent.name
86
+ : settings_1.DEFAULT_TASKS_EXPORT_AGENT_NAME
87
+ }
88
+ } }, (typeof params.id === 'string') ? { id: params.id } : undefined));
85
89
  if (transaction === null) {
86
90
  return;
87
91
  }
88
- // let tasks: factory.task.ITask<factory.taskName>[] = [];
89
92
  // 失敗してもここでは戻さない(RUNNINGのまま待機)
90
93
  switch (transaction.typeOf) {
91
94
  case factory.transactionType.MoneyTransfer:
@@ -109,7 +112,6 @@ function exportTasks(params) {
109
112
  default:
110
113
  }
111
114
  yield repos.transaction.setTasksExportedById({ id: transaction.id });
112
- // return tasks;
113
115
  });
114
116
  }
115
117
  exports.exportTasks = exportTasks;
@@ -1,5 +1,7 @@
1
1
  import * as moment from 'moment';
2
2
  import * as factory from './factory';
3
+ export declare const TRIGGER_WEBHOOK_MAX_RETRY_COUNT: number;
4
+ export declare const TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS: number;
3
5
  export declare const ABORTED_TASKS_WITHOUT_REPORT: string[];
4
6
  /**
5
7
  * 資産取引保管期間
@@ -27,10 +29,11 @@ export type ISettings = factory.project.ISettings & {
27
29
  useOfferRateLimitProjects: string[];
28
30
  };
29
31
  export declare const DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD: string;
32
+ export declare const DEFAULT_TASKS_EXPORT_AGENT_NAME: string;
30
33
  export declare const USE_ASSET_TRANSACTION_SYNC_PROCESSING: boolean;
31
34
  export declare const USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING: boolean;
32
35
  export declare const USE_NEW_EVENT_AVAILABILITY_KEY_FROM: moment.Moment;
33
- export declare const USE_NEW_CONFIRMATION_NUMBER_KEY_FROM: moment.Moment;
36
+ export declare const INFORM_RESERVATION_TASK_DELAY_IN_SECONDS: number;
34
37
  /**
35
38
  * グローバル設定
36
39
  */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.settings = exports.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM = exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.ABORTED_TASKS_WITHOUT_REPORT = void 0;
3
+ exports.settings = exports.INFORM_RESERVATION_TASK_DELAY_IN_SECONDS = exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_TASKS_EXPORT_AGENT_NAME = exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.ABORTED_TASKS_WITHOUT_REPORT = exports.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS = exports.TRIGGER_WEBHOOK_MAX_RETRY_COUNT = void 0;
4
4
  const moment = require("moment");
5
5
  const factory = require("./factory");
6
6
  const transactionWebhookUrls = (typeof process.env.INFORM_TRANSACTION_URL === 'string')
@@ -14,6 +14,12 @@ const informReservationUrls = (typeof process.env.INFORM_RESERVATION_URL === 'st
14
14
  : [];
15
15
  // tslint:disable-next-line:no-magic-numbers
16
16
  const triggerWebhookTimeout = (process.env.TRIGGER_WEBHOOK_TIMEOUT !== undefined) ? Number(process.env.TRIGGER_WEBHOOK_TIMEOUT) : 15000;
17
+ exports.TRIGGER_WEBHOOK_MAX_RETRY_COUNT = (typeof process.env.TRIGGER_WEBHOOK_MAX_RETRY_COUNT === 'string')
18
+ ? Number(process.env.TRIGGER_WEBHOOK_MAX_RETRY_COUNT)
19
+ : 0;
20
+ exports.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS = (typeof process.env.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS === 'string')
21
+ ? Number(process.env.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS)
22
+ : 0;
17
23
  const MAXIMUM_RESERVATION_GRACE_PERIOD_IN_DAYS = (typeof process.env.MAXIMUM_RESERVATION_GRACE_PERIOD_IN_DAYS === 'string')
18
24
  ? Number(process.env.MAXIMUM_RESERVATION_GRACE_PERIOD_IN_DAYS)
19
25
  // tslint:disable-next-line:no-magic-numbers
@@ -44,14 +50,15 @@ exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = (typeof process.env.TRANSA
44
50
  : 7;
45
51
  exports.DEFAULT_SENDER_EMAIL = process.env.DEFAULT_SENDER_EMAIL;
46
52
  exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = String(process.env.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD);
53
+ exports.DEFAULT_TASKS_EXPORT_AGENT_NAME = `${process.env.GAE_APPLICATION}:${process.env.GAE_SERVICE}:jobs`;
47
54
  exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = process.env.USE_ASSET_TRANSACTION_SYNC_PROCESSING === '1';
48
55
  exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = process.env.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING === '1';
49
56
  exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = (typeof process.env.USE_NEW_EVENT_AVAILABILITY_KEY_FROM === 'string')
50
57
  ? moment(process.env.USE_NEW_EVENT_AVAILABILITY_KEY_FROM)
51
58
  : moment('2023-08-31T15:00:00Z');
52
- exports.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM = (typeof process.env.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM === 'string')
53
- ? moment(process.env.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM)
54
- : moment('2023-04-30T15:00:00Z');
59
+ exports.INFORM_RESERVATION_TASK_DELAY_IN_SECONDS = (typeof process.env.INFORM_RESERVATION_TASK_DELAY_IN_SECONDS === 'string')
60
+ ? Number(process.env.INFORM_RESERVATION_TASK_DELAY_IN_SECONDS)
61
+ : 0;
55
62
  /**
56
63
  * グローバル設定
57
64
  */
package/package.json CHANGED
@@ -9,8 +9,8 @@
9
9
  }
10
10
  ],
11
11
  "dependencies": {
12
- "@chevre/factory": "4.310.0",
13
- "@cinerino/sdk": "3.154.0",
12
+ "@chevre/factory": "4.313.0-alpha.0",
13
+ "@cinerino/sdk": "3.156.0",
14
14
  "@motionpicture/coa-service": "9.2.0",
15
15
  "@motionpicture/gmo-service": "5.2.0",
16
16
  "@sendgrid/mail": "6.4.0",
@@ -58,7 +58,7 @@
58
58
  "googleapis": "^85.0.0",
59
59
  "json2csv": "4.5.4",
60
60
  "mocha": "^5.2.0",
61
- "mongoose": "6.10.4",
61
+ "mongoose": "7.0.5",
62
62
  "nock": "^9.6.1",
63
63
  "nyc": "^15.1.0",
64
64
  "power-assert": "^1.6.1",
@@ -74,7 +74,7 @@
74
74
  },
75
75
  "peerDependencies": {
76
76
  "aws-sdk": "^2.0.0",
77
- "mongoose": "^6.0.0",
77
+ "mongoose": "^7.0.5",
78
78
  "redis": "^4.6.5"
79
79
  },
80
80
  "engines": {
@@ -117,5 +117,5 @@
117
117
  "postversion": "git push origin --tags",
118
118
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
119
119
  },
120
- "version": "21.2.0-alpha.5"
120
+ "version": "21.2.0-alpha.50"
121
121
  }
@@ -1,96 +0,0 @@
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
-
9
- // tslint:disable-next-line:max-func-body-length
10
- async function main() {
11
- await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
12
-
13
- const accountTransactionRepo = new chevre.repository.AccountTransaction(mongoose.connection);
14
- const assetTransactionRepo = new chevre.repository.AssetTransaction(mongoose.connection);
15
-
16
- const cursor = assetTransactionRepo.getCursor(
17
- {
18
- 'project.id': { $eq: project.id },
19
- typeOf: { $eq: chevre.factory.assetTransactionType.MoneyTransfer },
20
- startDate: {
21
- $gte: moment('2023-02-17T15:00:00Z')
22
- .toDate()
23
- }
24
- // _id: { $eq: 'al6aff83w' }
25
- },
26
- {
27
- // _id: 1,
28
- }
29
- );
30
- console.log('assetTransactions found');
31
-
32
- let i = 0;
33
- let updateCount = 0;
34
- // tslint:disable-next-line:max-func-body-length
35
- await cursor.eachAsync(async (doc) => {
36
- i += 1;
37
- const moneyTransferTransaction: chevre.factory.assetTransaction.moneyTransfer.ITransaction = doc.toObject();
38
-
39
- const description = moneyTransferTransaction.object.description;
40
- if (description !== '鑑賞' && description !== '受け取り') {
41
- console.log(
42
- 'no operation needed',
43
- description,
44
- moneyTransferTransaction.project.id,
45
- moneyTransferTransaction.transactionNumber,
46
- moneyTransferTransaction.startDate
47
- );
48
- } else {
49
- const pendingTransactionIdentifier = moneyTransferTransaction.object.pendingTransaction?.identifier;
50
- if (typeof pendingTransactionIdentifier === 'string' && pendingTransactionIdentifier.length > 0) {
51
- console.log(
52
- 'pendingTransactionIdentifier found',
53
- description,
54
- moneyTransferTransaction.project.id,
55
- moneyTransferTransaction.transactionNumber,
56
- moneyTransferTransaction.startDate
57
- );
58
- } else {
59
- // 口座取引からidentifierを取得
60
- const accountTransaction =
61
- await accountTransactionRepo.findByTransactionNumber({ transactionNumber: moneyTransferTransaction.transactionNumber });
62
- console.log(
63
- 'updating identifier...',
64
- accountTransaction.identifier,
65
- description,
66
- moneyTransferTransaction.project.id,
67
- moneyTransferTransaction.transactionNumber,
68
- moneyTransferTransaction.startDate
69
- );
70
- if (typeof accountTransaction.identifier === 'string') {
71
- await assetTransactionRepo.findByIdAndUpdate({
72
- id: moneyTransferTransaction.id,
73
- update: {
74
- 'object.pendingTransaction.identifier': accountTransaction.identifier
75
- }
76
- });
77
- }
78
- console.log(
79
- 'ientifier updated',
80
- accountTransaction.identifier,
81
- description,
82
- moneyTransferTransaction.project.id,
83
- moneyTransferTransaction.transactionNumber,
84
- moneyTransferTransaction.startDate
85
- );
86
- updateCount += 1;
87
- }
88
- }
89
- });
90
- console.log(i, 'assetTransactions checked');
91
- console.log(updateCount, 'assetTransactions updated');
92
- }
93
-
94
- main()
95
- .then()
96
- .catch(console.error);
@@ -1,98 +0,0 @@
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 additionalPropertyRepo = new chevre.repository.AdditionalProperty(mongoose.connection);
15
- const creativeWorkRepo = new chevre.repository.CreativeWork(mongoose.connection);
16
-
17
- const cursor = creativeWorkRepo.getCursor(
18
- {
19
- // 'project.id': { $eq: project.id },
20
- 'project.id': { $ne: EXCLUDED_PROJECT_ID }
21
- },
22
- {
23
- // _id: 1,
24
- }
25
- );
26
- console.log('movies found');
27
-
28
- const additionalPropertyNames: string[] = [];
29
- const projectIds: string[] = [];
30
- const unexpextedprojectIds: string[] = [];
31
-
32
- let i = 0;
33
- let updateCount = 0;
34
- await cursor.eachAsync(async (doc) => {
35
- i += 1;
36
- const movie: chevre.factory.creativeWork.movie.ICreativeWork = doc.toObject();
37
-
38
- const additionalPropertyNamesOnEvent = movie.additionalProperty?.map((p) => p.name);
39
- if (Array.isArray(additionalPropertyNamesOnEvent) && additionalPropertyNamesOnEvent.length > 0) {
40
- console.log(
41
- additionalPropertyNamesOnEvent.length,
42
- 'additionalPropertyNamesOnEvent found',
43
- movie.project.id,
44
- movie.id
45
- );
46
- additionalPropertyNames.push(...additionalPropertyNamesOnEvent);
47
- projectIds.push(movie.project.id);
48
- additionalPropertyNamesOnEvent.forEach((name) => {
49
- if (!name.match(/^[a-zA-Z]*$/)) {
50
- // throw new Error(`not matched ${creativeWork.project.id} ${creativeWork.id}`);
51
- unexpextedprojectIds.push(movie.project.id);
52
- }
53
- // tslint:disable-next-line:no-magic-numbers
54
- if (name.length < 5) {
55
- // throw new Error(`length matched ${creativeWork.project.id} ${creativeWork.id} ${name}`);
56
- unexpextedprojectIds.push(movie.project.id);
57
- }
58
- });
59
-
60
- for (const additionalPropertyNameOnEvent of additionalPropertyNamesOnEvent) {
61
- const existings = await additionalPropertyRepo.search({
62
- project: { id: { $eq: movie.project.id } },
63
- limit: 1,
64
- page: 1,
65
- name: { $regex: `^${additionalPropertyNameOnEvent}$` }
66
- });
67
- if (existings.length > 0) {
68
- console.log('already existed', additionalPropertyNameOnEvent, movie.id, movie.project.id);
69
- } else {
70
- updateCount += 1;
71
- const newAdditionalProperty: chevre.factory.additionalProperty.IAdditionalProperty = {
72
- project: movie.project,
73
- typeOf: 'CategoryCode',
74
- codeValue: additionalPropertyNameOnEvent,
75
- inCodeSet: {
76
- typeOf: 'CategoryCodeSet',
77
- identifier: <chevre.factory.creativeWorkType.Movie>movie.typeOf
78
- },
79
- name: { ja: additionalPropertyNameOnEvent }
80
- };
81
- await additionalPropertyRepo.save({
82
- attributes: newAdditionalProperty
83
- });
84
- console.log('created', additionalPropertyNameOnEvent, movie.id, movie.project.id);
85
- }
86
- }
87
- }
88
- });
89
- console.log(i, 'events checked');
90
- console.log(updateCount, 'properties updated');
91
- console.log('additionalPropertyNames:', [...new Set(additionalPropertyNames)]);
92
- console.log('projectIds:', [...new Set(projectIds)]);
93
- console.log('unexpextedprojectIds:', [...new Set(unexpextedprojectIds)]);
94
- }
95
-
96
- main()
97
- .then()
98
- .catch(console.error);