@chevre/domain 21.2.0-alpha.8 → 21.2.0-alpha.80

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 (237) hide show
  1. package/example/src/chevre/aggregation/aggregateSystem.ts +58 -31
  2. package/example/src/chevre/countDelayedTransactions.ts +60 -0
  3. package/example/src/chevre/createManyEventsIfNotExist.ts +4 -1
  4. package/example/src/chevre/deleteTasksByName.ts +10 -2
  5. package/example/src/chevre/importEventsFromCOA.ts +3 -4
  6. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  7. package/example/src/chevre/processReserve.ts +2 -1
  8. package/example/src/chevre/saveTasks.ts +13 -10
  9. package/example/src/chevre/searchAbortedTasks.ts +36 -0
  10. package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
  11. package/example/src/chevre/searchSellers.ts +22 -0
  12. package/example/src/chevre/searchSendEmailActions.ts +44 -0
  13. package/example/src/chevre/task/executeTasks.ts +26 -0
  14. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  15. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  16. package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
  17. package/example/src/chevre/transaction/startExportTasks.ts +20 -0
  18. package/example/src/chevre/updateTransaction.ts +1 -1
  19. package/example/src/playOnMoment.ts +24 -0
  20. package/lib/chevre/credentials.d.ts +1 -0
  21. package/lib/chevre/credentials.js +2 -1
  22. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  23. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  24. package/lib/chevre/eventEmitter/task.d.ts +18 -0
  25. package/lib/chevre/eventEmitter/task.js +25 -0
  26. package/lib/chevre/eventEmitter/transaction.d.ts +21 -0
  27. package/lib/chevre/eventEmitter/transaction.js +25 -0
  28. package/lib/chevre/eventEmitter.d.ts +4 -0
  29. package/lib/chevre/eventEmitter.js +9 -0
  30. package/lib/chevre/index.d.ts +3 -2
  31. package/lib/chevre/index.js +5 -3
  32. package/lib/chevre/repo/accountTransaction.d.ts +3 -11
  33. package/lib/chevre/repo/accountTransaction.js +1 -54
  34. package/lib/chevre/repo/action.d.ts +29 -1
  35. package/lib/chevre/repo/action.js +32 -25
  36. package/lib/chevre/repo/assetTransaction.d.ts +25 -9
  37. package/lib/chevre/repo/assetTransaction.js +237 -80
  38. package/lib/chevre/repo/comment.d.ts +4 -1
  39. package/lib/chevre/repo/comment.js +20 -5
  40. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  41. package/lib/chevre/repo/confirmationNumber.js +3 -15
  42. package/lib/chevre/repo/creativeWork.d.ts +1 -3
  43. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  44. package/lib/chevre/repo/event.d.ts +5 -1
  45. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  46. package/lib/chevre/repo/mongoose/schemas/account.d.ts +5 -2
  47. package/lib/chevre/repo/mongoose/schemas/account.js +1 -0
  48. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +30 -3
  49. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -0
  50. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +32 -3
  51. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +2 -1
  52. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +14 -3
  53. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -0
  54. package/lib/chevre/repo/mongoose/schemas/action.d.ts +44 -3
  55. package/lib/chevre/repo/mongoose/schemas/action.js +2 -1
  56. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +18 -3
  57. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -0
  58. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +5 -2
  59. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -0
  60. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +45 -3
  61. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +15 -19
  62. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +20 -3
  63. package/lib/chevre/repo/mongoose/schemas/authorization.js +2 -1
  64. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +26 -3
  65. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -0
  66. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +28 -3
  67. package/lib/chevre/repo/mongoose/schemas/comments.js +2 -1
  68. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +44 -3
  69. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -0
  70. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +26 -3
  71. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -0
  72. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +22 -3
  73. package/lib/chevre/repo/mongoose/schemas/emailMessages.js +1 -0
  74. package/lib/chevre/repo/mongoose/schemas/event.d.ts +72 -3
  75. package/lib/chevre/repo/mongoose/schemas/event.js +1 -0
  76. package/lib/chevre/repo/mongoose/schemas/member.d.ts +14 -3
  77. package/lib/chevre/repo/mongoose/schemas/member.js +1 -0
  78. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +22 -3
  79. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -0
  80. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +66 -3
  81. package/lib/chevre/repo/mongoose/schemas/offer.js +1 -0
  82. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +28 -3
  83. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -0
  84. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
  85. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
  86. package/lib/chevre/repo/mongoose/schemas/order.d.ts +52 -3
  87. package/lib/chevre/repo/mongoose/schemas/order.js +2 -1
  88. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +26 -3
  89. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +2 -1
  90. package/lib/chevre/repo/mongoose/schemas/place.d.ts +50 -3
  91. package/lib/chevre/repo/mongoose/schemas/place.js +1 -0
  92. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +30 -3
  93. package/lib/chevre/repo/mongoose/schemas/priceSpecification.js +1 -0
  94. package/lib/chevre/repo/mongoose/schemas/product.d.ts +32 -3
  95. package/lib/chevre/repo/mongoose/schemas/product.js +1 -0
  96. package/lib/chevre/repo/mongoose/schemas/project.d.ts +24 -3
  97. package/lib/chevre/repo/mongoose/schemas/project.js +1 -0
  98. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -4
  99. package/lib/chevre/repo/mongoose/schemas/reservation.js +2 -1
  100. package/lib/chevre/repo/mongoose/schemas/role.d.ts +12 -3
  101. package/lib/chevre/repo/mongoose/schemas/role.js +1 -0
  102. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +32 -3
  103. package/lib/chevre/repo/mongoose/schemas/seller.js +7 -0
  104. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +12 -3
  105. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +2 -1
  106. package/lib/chevre/repo/mongoose/schemas/task.d.ts +31 -3
  107. package/lib/chevre/repo/mongoose/schemas/task.js +3 -1
  108. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +22 -3
  109. package/lib/chevre/repo/mongoose/schemas/telemetry.js +1 -0
  110. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +41 -3
  111. package/lib/chevre/repo/mongoose/schemas/transaction.js +3 -1
  112. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +12 -3
  113. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -0
  114. package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
  115. package/lib/chevre/repo/offerItemCondition.js +120 -0
  116. package/lib/chevre/repo/order.d.ts +52 -2
  117. package/lib/chevre/repo/order.js +52 -4
  118. package/lib/chevre/repo/reservation.d.ts +8 -4
  119. package/lib/chevre/repo/reservation.js +8 -42
  120. package/lib/chevre/repo/seller.js +19 -19
  121. package/lib/chevre/repo/task.d.ts +42 -2
  122. package/lib/chevre/repo/task.js +90 -9
  123. package/lib/chevre/repo/transaction.d.ts +23 -3
  124. package/lib/chevre/repo/transaction.js +174 -54
  125. package/lib/chevre/repository.d.ts +5 -2
  126. package/lib/chevre/repository.js +8 -4
  127. package/lib/chevre/service/aggregation/system.d.ts +67 -22
  128. package/lib/chevre/service/aggregation/system.js +101 -89
  129. package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
  130. package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -23
  131. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
  132. package/lib/chevre/service/assetTransaction/pay.js +10 -25
  133. package/lib/chevre/service/assetTransaction/refund.js +1 -23
  134. package/lib/chevre/service/assetTransaction/registerService.js +1 -25
  135. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +6 -2
  136. package/lib/chevre/service/assetTransaction/reserve/factory.js +24 -20
  137. package/lib/chevre/service/assetTransaction/reserve.d.ts +7 -1
  138. package/lib/chevre/service/assetTransaction/reserve.js +35 -40
  139. package/lib/chevre/service/assetTransaction.d.ts +6 -2
  140. package/lib/chevre/service/assetTransaction.js +9 -5
  141. package/lib/chevre/service/event.js +3 -1
  142. package/lib/chevre/service/notification/factory.js +2 -2
  143. package/lib/chevre/service/notification.d.ts +3 -1
  144. package/lib/chevre/service/notification.js +41 -7
  145. package/lib/chevre/service/offer/event/authorize.d.ts +1 -0
  146. package/lib/chevre/service/offer/event/authorize.js +5 -2
  147. package/lib/chevre/service/offer/event/factory.d.ts +2 -0
  148. package/lib/chevre/service/offer/event/factory.js +2 -2
  149. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  150. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  151. package/lib/chevre/service/offer.js +1 -1
  152. package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
  153. package/lib/chevre/service/order/deleteOrder.js +8 -8
  154. package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +0 -1
  155. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +1 -48
  156. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
  157. package/lib/chevre/service/order/placeOrder.js +1 -1
  158. package/lib/chevre/service/order/returnOrder.js +1 -5
  159. package/lib/chevre/service/order/sendOrder.js +1 -1
  160. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  161. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  162. package/lib/chevre/service/payment/any.js +60 -10
  163. package/lib/chevre/service/payment/movieTicket/validation.d.ts +3 -2
  164. package/lib/chevre/service/payment/movieTicket/validation.js +12 -25
  165. package/lib/chevre/service/payment/movieTicket.d.ts +1 -1
  166. package/lib/chevre/service/payment/movieTicket.js +4 -3
  167. package/lib/chevre/service/product.js +1 -5
  168. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  169. package/lib/chevre/service/report/telemetry.js +21 -24
  170. package/lib/chevre/service/reserve/cancelReservation.d.ts +4 -2
  171. package/lib/chevre/service/reserve/cancelReservation.js +2 -4
  172. package/lib/chevre/service/reserve/checkInReservation.d.ts +0 -3
  173. package/lib/chevre/service/reserve/checkInReservation.js +24 -0
  174. package/lib/chevre/service/reserve/confirmReservation.d.ts +2 -0
  175. package/lib/chevre/service/reserve/confirmReservation.js +45 -9
  176. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +0 -3
  177. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +20 -20
  178. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  179. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  180. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  181. package/lib/chevre/service/reserve/useReservation.d.ts +4 -3
  182. package/lib/chevre/service/reserve/useReservation.js +14 -71
  183. package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
  184. package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
  185. package/lib/chevre/service/reserve.d.ts +2 -1
  186. package/lib/chevre/service/reserve.js +3 -1
  187. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  188. package/lib/chevre/service/task/deleteTransaction.js +10 -8
  189. package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
  190. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
  191. package/lib/chevre/service/task/onAuthorizationCreated.js +101 -0
  192. package/lib/chevre/service/task/reserve.js +5 -6
  193. package/lib/chevre/service/task/returnPayTransaction.js +2 -12
  194. package/lib/chevre/service/task/useReservation.d.ts +7 -0
  195. package/lib/chevre/service/task/{deleteOrder.js → useReservation.js} +11 -12
  196. package/lib/chevre/service/task/voidReserveTransaction.js +3 -1
  197. package/lib/chevre/service/task.d.ts +9 -0
  198. package/lib/chevre/service/task.js +43 -4
  199. package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
  200. package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
  201. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
  202. package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
  203. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
  204. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
  205. package/lib/chevre/service/transaction/moneyTransfer.js +9 -12
  206. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
  207. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  208. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  209. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  210. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  211. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  212. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  213. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  214. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  215. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  216. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  217. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  218. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  219. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  220. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  221. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  222. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
  223. package/lib/chevre/service/transaction/placeOrderInProgress.js +22 -11
  224. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
  225. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
  226. package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
  227. package/lib/chevre/service/transaction/returnOrder.js +225 -35
  228. package/lib/chevre/service/transaction.d.ts +8 -13
  229. package/lib/chevre/service/transaction.js +12 -145
  230. package/lib/chevre/settings.d.ts +4 -1
  231. package/lib/chevre/settings.js +15 -5
  232. package/package.json +5 -5
  233. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  234. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
  235. package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
  236. package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
  237. package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
@@ -0,0 +1,20 @@
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 = new chevre.repository.Transaction(mongoose.connection);
10
+ const result = await transactionRepo.startExportTasks({
11
+ typeOf: { $in: [chevre.factory.transactionType.PlaceOrder] },
12
+ status: chevre.factory.transactionStatusType.Confirmed,
13
+ tasksExportAction: { agent: { name: 'xxx' } }
14
+ });
15
+ console.log(result);
16
+ }
17
+
18
+ main()
19
+ .then(console.log)
20
+ .catch(console.error);
@@ -14,7 +14,7 @@ async function main() {
14
14
  };
15
15
 
16
16
  let now = moment();
17
- await transactionRepo.findByIdAndUpdate({
17
+ await transactionRepo.findByIdAndUpdateInProgress({
18
18
  id: transactionId,
19
19
  update
20
20
  });
@@ -0,0 +1,24 @@
1
+ // tslint:disable:no-console
2
+ import * as moment from 'moment-timezone';
3
+
4
+ const startDate = moment('2023-05-27T00:00:00Z')
5
+ .toDate();
6
+ const gracePeriodBeforeStartInDaysMin = {
7
+ timezone: 'Asia/Tokyo',
8
+ time: '09:38:00',
9
+ period: { value: 3 }
10
+ };
11
+ const returningDate = new Date();
12
+
13
+ const minDate: string = moment(startDate)
14
+ .tz(gracePeriodBeforeStartInDaysMin.timezone)
15
+ .startOf('days')
16
+ .subtract(gracePeriodBeforeStartInDaysMin.period.value, 'days')
17
+ .format('YYYY-MM-DD');
18
+ console.log('minDate:', minDate);
19
+
20
+ const returnMaxDate = moment(`${minDate}T${gracePeriodBeforeStartInDaysMin.time}`)
21
+ .tz(gracePeriodBeforeStartInDaysMin.timezone);
22
+ console.log(returnMaxDate);
23
+
24
+ console.log(returnMaxDate.isSameOrAfter(moment(returningDate)));
@@ -27,6 +27,7 @@ export declare const credentials: {
27
27
  lineNotify: {
28
28
  url: string;
29
29
  accessToken: string;
30
+ accessTokenAlert: string;
30
31
  };
31
32
  movieticketReserve: {
32
33
  timeout: number;
@@ -31,7 +31,8 @@ exports.credentials = {
31
31
  },
32
32
  lineNotify: {
33
33
  url: process.env.LINE_NOTIFY_URL,
34
- accessToken: process.env.LINE_NOTIFY_ACCESS_TOKEN
34
+ accessToken: process.env.LINE_NOTIFY_ACCESS_TOKEN,
35
+ accessTokenAlert: process.env.LINE_NOTIFY_ACCESS_TOKEN_ALERT
35
36
  },
36
37
  movieticketReserve: {
37
38
  // tslint:disable-next-line:no-magic-numbers
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import * as factory from '../factory';
4
+ interface IListenArgsOnAssetTransactionStatusChanged {
5
+ /**
6
+ * 取引ID
7
+ */
8
+ id: string;
9
+ typeOf: factory.assetTransactionType;
10
+ status: factory.transactionStatusType;
11
+ }
12
+ type IOnAssetTransactionStatusChangedListener = (listenArgs: IListenArgsOnAssetTransactionStatusChanged) => void;
13
+ /**
14
+ * 資産取引イベントエミッター
15
+ */
16
+ declare class AssetTransactionEventEmitter extends EventEmitter {
17
+ onAssetTransactionStatusChanged(listner: IOnAssetTransactionStatusChangedListener): void;
18
+ emitAssetTransactionStatusChanged(args: IListenArgsOnAssetTransactionStatusChanged): void;
19
+ }
20
+ declare const assetTransactionEventEmitter: AssetTransactionEventEmitter;
21
+ export { IListenArgsOnAssetTransactionStatusChanged, assetTransactionEventEmitter };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assetTransactionEventEmitter = void 0;
4
+ const events_1 = require("events");
5
+ var EventName;
6
+ (function (EventName) {
7
+ EventName["OnAssetTransactionStatusChanged"] = "OnAssetTransactionStatusChanged";
8
+ })(EventName || (EventName = {}));
9
+ /**
10
+ * 資産取引イベントエミッター
11
+ */
12
+ class AssetTransactionEventEmitter extends events_1.EventEmitter {
13
+ onAssetTransactionStatusChanged(listner) {
14
+ this.on(EventName.OnAssetTransactionStatusChanged, listner);
15
+ }
16
+ emitAssetTransactionStatusChanged(args) {
17
+ this.emit(EventName.OnAssetTransactionStatusChanged, args);
18
+ }
19
+ }
20
+ const assetTransactionEventEmitter = new AssetTransactionEventEmitter();
21
+ exports.assetTransactionEventEmitter = assetTransactionEventEmitter;
22
+ assetTransactionEventEmitter.on('error', (err) => {
23
+ // tslint:disable-next-line:no-console
24
+ console.error('assetTransactionEventEmitter listened an error.', err);
25
+ });
@@ -0,0 +1,18 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import * as factory from '../factory';
4
+ interface IListenArgsOnTaskStatusChanged {
5
+ id: string;
6
+ name?: factory.taskName;
7
+ status: factory.taskStatus;
8
+ }
9
+ type IOnTaskStatusChangedListener = (listenArgs: IListenArgsOnTaskStatusChanged) => void;
10
+ /**
11
+ * タスクイベントエミッター
12
+ */
13
+ declare class TaskEventEmitter extends EventEmitter {
14
+ onTaskStatusChanged(listner: IOnTaskStatusChangedListener): void;
15
+ emitTaskStatusChanged(args: IListenArgsOnTaskStatusChanged): void;
16
+ }
17
+ declare const taskEventEmitter: TaskEventEmitter;
18
+ export { IOnTaskStatusChangedListener, taskEventEmitter };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.taskEventEmitter = void 0;
4
+ const events_1 = require("events");
5
+ var EventName;
6
+ (function (EventName) {
7
+ EventName["OnTaskStatusChanged"] = "OnTaskStatusChanged";
8
+ })(EventName || (EventName = {}));
9
+ /**
10
+ * タスクイベントエミッター
11
+ */
12
+ class TaskEventEmitter extends events_1.EventEmitter {
13
+ onTaskStatusChanged(listner) {
14
+ this.on(EventName.OnTaskStatusChanged, listner);
15
+ }
16
+ emitTaskStatusChanged(args) {
17
+ this.emit(EventName.OnTaskStatusChanged, args);
18
+ }
19
+ }
20
+ const taskEventEmitter = new TaskEventEmitter();
21
+ exports.taskEventEmitter = taskEventEmitter;
22
+ taskEventEmitter.on('error', (err) => {
23
+ // tslint:disable-next-line:no-console
24
+ console.error('taskEventEmitter listened an error.', err);
25
+ });
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import * as factory from '../factory';
4
+ interface IListenArgsOnTransactionStatusChanged {
5
+ /**
6
+ * 取引ID
7
+ */
8
+ id: string;
9
+ typeOf: factory.transactionType;
10
+ status: factory.transactionStatusType;
11
+ }
12
+ type IOnTransactionStatusChangedListener = (listenArgs: IListenArgsOnTransactionStatusChanged) => void;
13
+ /**
14
+ * 取引イベントエミッター
15
+ */
16
+ declare class TransactionEventEmitter extends EventEmitter {
17
+ onTransactionStatusChanged(listner: IOnTransactionStatusChangedListener): void;
18
+ emitTransactionStatusChanged(args: IListenArgsOnTransactionStatusChanged): void;
19
+ }
20
+ declare const transactionEventEmitter: TransactionEventEmitter;
21
+ export { IListenArgsOnTransactionStatusChanged, transactionEventEmitter };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transactionEventEmitter = void 0;
4
+ const events_1 = require("events");
5
+ var EventName;
6
+ (function (EventName) {
7
+ EventName["OnTransactionStatusChanged"] = "OnTransactionStatusChanged";
8
+ })(EventName || (EventName = {}));
9
+ /**
10
+ * 取引イベントエミッター
11
+ */
12
+ class TransactionEventEmitter extends events_1.EventEmitter {
13
+ onTransactionStatusChanged(listner) {
14
+ this.on(EventName.OnTransactionStatusChanged, listner);
15
+ }
16
+ emitTransactionStatusChanged(args) {
17
+ this.emit(EventName.OnTransactionStatusChanged, args);
18
+ }
19
+ }
20
+ const transactionEventEmitter = new TransactionEventEmitter();
21
+ exports.transactionEventEmitter = transactionEventEmitter;
22
+ transactionEventEmitter.on('error', (err) => {
23
+ // tslint:disable-next-line:no-console
24
+ console.error('transactionEventEmitter listened an error.', err);
25
+ });
@@ -0,0 +1,4 @@
1
+ import { assetTransactionEventEmitter } from './eventEmitter/assetTransaction';
2
+ import { taskEventEmitter } from './eventEmitter/task';
3
+ import { transactionEventEmitter } from './eventEmitter/transaction';
4
+ export { assetTransactionEventEmitter as assetTransaction, taskEventEmitter as task, transactionEventEmitter as transaction };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transaction = exports.task = exports.assetTransaction = void 0;
4
+ const assetTransaction_1 = require("./eventEmitter/assetTransaction");
5
+ Object.defineProperty(exports, "assetTransaction", { enumerable: true, get: function () { return assetTransaction_1.assetTransactionEventEmitter; } });
6
+ const task_1 = require("./eventEmitter/task");
7
+ Object.defineProperty(exports, "task", { enumerable: true, get: function () { return task_1.taskEventEmitter; } });
8
+ const transaction_1 = require("./eventEmitter/transaction");
9
+ Object.defineProperty(exports, "transaction", { enumerable: true, get: function () { return transaction_1.transactionEventEmitter; } });
@@ -6,9 +6,10 @@ import * as GMO from '@motionpicture/gmo-service';
6
6
  import * as surfrock from '@surfrock/sdk';
7
7
  import { credentials } from './credentials';
8
8
  import * as errorHandler from './errorHandler';
9
+ import * as eventEmitter from './eventEmitter';
9
10
  import * as factory from './factory';
10
11
  import * as pecorinoapi from './pecorinoapi';
11
12
  import * as repository from './repository';
12
13
  import * as service from './service';
13
- import { settings } from './settings';
14
- export { credentials, errorHandler, factory, repository, service, settings, surfrock, pecorinoapi, COA, GMO };
14
+ import * as settings from './settings';
15
+ export { credentials, errorHandler, eventEmitter, factory, repository, service, settings, surfrock, pecorinoapi, COA, GMO };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GMO = exports.COA = exports.pecorinoapi = exports.surfrock = exports.settings = exports.service = exports.repository = exports.factory = exports.errorHandler = exports.credentials = void 0;
3
+ exports.GMO = exports.COA = exports.pecorinoapi = exports.surfrock = exports.settings = exports.service = exports.repository = exports.factory = exports.eventEmitter = exports.errorHandler = exports.credentials = void 0;
4
4
  /**
5
5
  * index module
6
6
  */
@@ -14,6 +14,8 @@ const credentials_1 = require("./credentials");
14
14
  Object.defineProperty(exports, "credentials", { enumerable: true, get: function () { return credentials_1.credentials; } });
15
15
  const errorHandler = require("./errorHandler");
16
16
  exports.errorHandler = errorHandler;
17
+ const eventEmitter = require("./eventEmitter");
18
+ exports.eventEmitter = eventEmitter;
17
19
  const factory = require("./factory");
18
20
  exports.factory = factory;
19
21
  const pecorinoapi = require("./pecorinoapi");
@@ -22,5 +24,5 @@ const repository = require("./repository");
22
24
  exports.repository = repository;
23
25
  const service = require("./service");
24
26
  exports.service = service;
25
- const settings_1 = require("./settings");
26
- Object.defineProperty(exports, "settings", { enumerable: true, get: function () { return settings_1.settings; } });
27
+ const settings = require("./settings");
28
+ exports.settings = settings;
@@ -42,21 +42,13 @@ export declare class MongoRepository {
42
42
  id?: string;
43
43
  transactionNumber?: string;
44
44
  }): Promise<factory.account.transaction.ITransaction<T>>;
45
- /**
46
- * タスク未エクスポートの取引をひとつ取得してエクスポートを開始する
47
- */
48
- /**
49
- * タスクエクスポートリトライ
50
- * TODO updatedAtを基準にしているが、タスクエクスポートトライ日時を持たせた方が安全か?
51
- */
52
- /**
53
- * タスクをエクスポート済に変更する
54
- */
55
45
  /**
56
46
  * 取引を期限切れにする
57
47
  */
58
48
  makeExpired(params: {
59
- expires: Date;
49
+ expires: {
50
+ $lt: Date;
51
+ };
60
52
  }): Promise<void>;
61
53
  /**
62
54
  * 取引を検索する
@@ -221,59 +221,6 @@ class MongoRepository {
221
221
  return doc.toObject();
222
222
  });
223
223
  }
224
- /**
225
- * タスク未エクスポートの取引をひとつ取得してエクスポートを開始する
226
- */
227
- // public async startExportTasks<T extends factory.account.transactionType>(
228
- // status: factory.transactionStatusType
229
- // ): Promise<factory.account.transaction.ITransaction<T> | null> {
230
- // return this.transactionModel.findOneAndUpdate(
231
- // {
232
- // status: status,
233
- // tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported
234
- // },
235
- // { tasksExportationStatus: factory.transactionTasksExportationStatus.Exporting },
236
- // { new: true }
237
- // )
238
- // .exec()
239
- // // tslint:disable-next-line:no-null-keyword
240
- // .then((doc) => (doc === null) ? null : doc.toObject());
241
- // }
242
- // tslint:disable-next-line:no-suspicious-comment
243
- /**
244
- * タスクエクスポートリトライ
245
- * TODO updatedAtを基準にしているが、タスクエクスポートトライ日時を持たせた方が安全か?
246
- */
247
- // public async reexportTasks(params: { intervalInMinutes: number }): Promise<void> {
248
- // await this.transactionModel.updateMany(
249
- // {
250
- // tasksExportationStatus: factory.transactionTasksExportationStatus.Exporting,
251
- // updatedAt: {
252
- // $lt: moment()
253
- // .add(-params.intervalInMinutes, 'minutes')
254
- // .toDate()
255
- // }
256
- // },
257
- // {
258
- // tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported
259
- // }
260
- // )
261
- // .exec();
262
- // }
263
- /**
264
- * タスクをエクスポート済に変更する
265
- */
266
- // public async setTasksExportedById(transactionId: string): Promise<void> {
267
- // await this.transactionModel.findByIdAndUpdate(
268
- // transactionId,
269
- // {
270
- // tasksExportationStatus: factory.transactionTasksExportationStatus.Exported,
271
- // tasksExportedAt: moment()
272
- // .toDate()
273
- // }
274
- // )
275
- // .exec();
276
- // }
277
224
  /**
278
225
  * 取引を期限切れにする
279
226
  */
@@ -282,7 +229,7 @@ class MongoRepository {
282
229
  // ステータスと期限を見て更新
283
230
  yield this.transactionModel.updateMany({
284
231
  status: factory.transactionStatusType.InProgress,
285
- expires: { $lt: params.expires }
232
+ expires: { $lt: params.expires.$lt }
286
233
  }, {
287
234
  status: factory.transactionStatusType.Expired,
288
235
  endDate: new Date()
@@ -82,7 +82,18 @@ export declare class MongoRepository {
82
82
  typeOf?: T;
83
83
  purpose: {
84
84
  typeOf: factory.transactionType;
85
- id?: string;
85
+ id: string;
86
+ };
87
+ object?: {
88
+ typeOf?: {
89
+ $eq?: factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation | factory.action.authorize.paymentMethod.any.ResultType.Payment;
90
+ };
91
+ paymentMethodId?: {
92
+ $eq?: string;
93
+ };
94
+ };
95
+ actionStatus?: {
96
+ $eq?: factory.actionStatusType;
86
97
  };
87
98
  sort?: factory.action.ISortOrder;
88
99
  }): Promise<IAction<T>[]>;
@@ -122,6 +133,23 @@ export declare class MongoRepository {
122
133
  deleteEndDatePassedCertainPeriod(params: {
123
134
  $lt: Date;
124
135
  }): Promise<void>;
136
+ /**
137
+ * 取引からアクションを削除する
138
+ */
139
+ deleteByPurpose(params: {
140
+ project: {
141
+ id: string;
142
+ };
143
+ purpose: {
144
+ typeOf: factory.transactionType;
145
+ id: string;
146
+ };
147
+ typeOf: {
148
+ $in: factory.actionType[];
149
+ };
150
+ }): Promise<{
151
+ deletedCount?: number;
152
+ } | null>;
125
153
  aggregateAuthorizeEventServiceOfferAction(params: {
126
154
  project?: {
127
155
  id?: {
@@ -528,32 +528,16 @@ class MongoRepository {
528
528
  * 取引に対するアクション検索時などに使用
529
529
  */
530
530
  searchByPurpose(params) {
531
- var _a;
531
+ var _a, _b, _c, _d, _e, _f;
532
532
  return __awaiter(this, void 0, void 0, function* () {
533
- const conditions = {
534
- 'purpose.typeOf': {
535
- $exists: true,
536
- $eq: params.purpose.typeOf
537
- }
538
- };
539
- if (params.typeOf !== undefined) {
540
- conditions.typeOf = params.typeOf;
541
- }
542
- if (params.purpose.id !== undefined) {
543
- conditions['purpose.id'] = {
544
- $exists: true,
545
- $eq: params.purpose.id
546
- };
547
- }
548
- const query = this.actionModel.find(conditions)
549
- .select({ __v: 0, createdAt: 0, updatedAt: 0 });
550
- // tslint:disable-next-line:no-single-line-block-comment
551
- /* istanbul ignore else */
552
- if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.startDate) !== undefined) {
553
- query.sort({ startDate: params.sort.startDate });
554
- }
555
- return query.exec()
556
- .then((docs) => docs.map((doc) => doc.toObject()));
533
+ return this.search(Object.assign(Object.assign(Object.assign({ purpose: {
534
+ id: { $in: [params.purpose.id] },
535
+ typeOf: { $in: [params.purpose.typeOf] }
536
+ }, object: Object.assign(Object.assign({}, (typeof ((_b = (_a = params.object) === null || _a === void 0 ? void 0 : _a.typeOf) === null || _b === void 0 ? void 0 : _b.$eq) === 'string')
537
+ ? { typeOf: { $eq: params.object.typeOf.$eq } }
538
+ : undefined), (typeof ((_d = (_c = params.object) === null || _c === void 0 ? void 0 : _c.paymentMethodId) === null || _d === void 0 ? void 0 : _d.$eq) === 'string')
539
+ ? { paymentMethodId: { $eq: params.object.paymentMethodId.$eq } }
540
+ : undefined) }, (typeof ((_e = params.actionStatus) === null || _e === void 0 ? void 0 : _e.$eq) === 'string') ? { actionStatus: { $in: [params.actionStatus.$eq] } } : undefined), (typeof params.typeOf === 'string') ? { typeOf: { $eq: params.typeOf } } : undefined), (typeof ((_f = params.sort) === null || _f === void 0 ? void 0 : _f.startDate) === 'number') ? { sort: params.sort } : undefined), [], []);
557
541
  });
558
542
  }
559
543
  /**
@@ -691,6 +675,29 @@ class MongoRepository {
691
675
  .exec();
692
676
  });
693
677
  }
678
+ /**
679
+ * 取引からアクションを削除する
680
+ */
681
+ deleteByPurpose(params) {
682
+ return __awaiter(this, void 0, void 0, function* () {
683
+ return this.actionModel.deleteMany({
684
+ 'project.id': { $eq: params.project.id },
685
+ typeOf: { $in: params.typeOf.$in },
686
+ 'purpose.id': { $exists: true, $eq: params.purpose.id },
687
+ 'purpose.typeOf': { $exists: true, $eq: params.purpose.typeOf }
688
+ })
689
+ .exec()
690
+ .then((result) => {
691
+ return {
692
+ // n: result?.n,
693
+ // opTime: result.opTime,
694
+ // ok: result?.ok,
695
+ // operationTime,
696
+ deletedCount: result === null || result === void 0 ? void 0 : result.deletedCount
697
+ };
698
+ });
699
+ });
700
+ }
694
701
  aggregateAuthorizeEventServiceOfferAction(params) {
695
702
  return __awaiter(this, void 0, void 0, function* () {
696
703
  const statuses = yield Promise.all([
@@ -64,13 +64,10 @@ export declare class MongoRepository {
64
64
  typeOf: T;
65
65
  transactionNumber: string;
66
66
  }): Promise<factory.assetTransaction.ITransaction<T>>;
67
- /**
68
- * 取引を確定する
69
- */
70
67
  addReservations(params: {
71
68
  typeOf: factory.assetTransactionType.Reserve;
72
69
  id: string;
73
- object: factory.assetTransaction.reserve.IObject;
70
+ object: Pick<factory.assetTransaction.reserve.IObject, 'acceptedOffer' | 'reservationFor' | 'subReservation'>;
74
71
  }): Promise<factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>>;
75
72
  /**
76
73
  * 取引を確定する
@@ -78,9 +75,10 @@ export declare class MongoRepository {
78
75
  confirm<T extends factory.assetTransactionType>(params: {
79
76
  typeOf: T;
80
77
  id: string;
78
+ object?: Pick<factory.action.reserve.IReservationPackageAsObject, 'underName'>;
81
79
  result: factory.assetTransaction.IResult<T>;
82
80
  potentialActions: factory.assetTransaction.IPotentialActions<T>;
83
- }): Promise<factory.assetTransaction.ITransaction<T>>;
81
+ }): Promise<void>;
84
82
  /**
85
83
  * 取引を開始&確定
86
84
  */
@@ -100,7 +98,13 @@ export declare class MongoRepository {
100
98
  $in: T[];
101
99
  };
102
100
  status: factory.transactionStatusType;
103
- }): Promise<factory.assetTransaction.ITransaction<T> | null>;
101
+ id?: string;
102
+ tasksExportAction: {
103
+ agent: {
104
+ name: string;
105
+ };
106
+ };
107
+ }): Promise<Pick<factory.assetTransaction.ITransaction<T>, 'id' | 'typeOf'> | null>;
104
108
  /**
105
109
  * タスクエクスポートリトライ
106
110
  * TODO updatedAtを基準にしているが、タスクエクスポートトライ日時を持たせた方が安全か?
@@ -108,6 +112,16 @@ export declare class MongoRepository {
108
112
  reexportTasks(params: {
109
113
  intervalInMinutes: number;
110
114
  }): Promise<void>;
115
+ /**
116
+ * タスクエクスポートの遅延している取引について明示的にemitTransactionStatusChangedを実行する
117
+ */
118
+ exportTasks(params: {
119
+ now: Date;
120
+ delayInSeconds: number;
121
+ status: {
122
+ $in: factory.transactionStatusType[];
123
+ };
124
+ }): Promise<Pick<import("@chevre/factory/lib/assetTransaction/cancelReservation").ITransaction | import("@chevre/factory/lib/assetTransaction/moneyTransfer").ITransaction | import("@chevre/factory/lib/assetTransaction/reserve").ITransaction | import("@chevre/factory/lib/assetTransaction/pay").ITransaction | import("@chevre/factory/lib/assetTransaction/refund").ITransaction | import("@chevre/factory/lib/assetTransaction/registerService").ITransaction, "id" | "typeOf" | "status">[]>;
111
125
  /**
112
126
  * set task status exported by transaction id
113
127
  * IDでタスクをエクスポート済に変更する
@@ -119,7 +133,9 @@ export declare class MongoRepository {
119
133
  * 取引を期限切れにする
120
134
  */
121
135
  makeExpired(params: {
122
- expires: Date;
136
+ expires: {
137
+ $lt: Date;
138
+ };
123
139
  }): Promise<void>;
124
140
  /**
125
141
  * 取引を中止する
@@ -133,7 +149,7 @@ export declare class MongoRepository {
133
149
  /**
134
150
  * 取引を検索する
135
151
  */
136
- search<T extends factory.assetTransactionType>(params: factory.assetTransaction.ISearchConditions<T>, projection?: any): Promise<factory.assetTransaction.ITransaction<T>[]>;
152
+ search<T extends factory.assetTransactionType>(params: factory.assetTransaction.ISearchConditions<T>, inclusion?: string[], exclusion?: string[]): Promise<factory.assetTransaction.ITransaction<T>[]>;
137
153
  /**
138
154
  * 取引番号指定で削除する
139
155
  */
@@ -159,7 +175,7 @@ export declare class MongoRepository {
159
175
  /**
160
176
  * 特定の取引を更新する(汎用)
161
177
  */
162
- findByIdAndUpdate<T extends factory.assetTransactionType>(params: {
178
+ findByIdAndUpdateInProgress<T extends factory.assetTransactionType>(params: {
163
179
  id: string;
164
180
  update: any;
165
181
  }): Promise<factory.assetTransaction.ITransaction<T>>;