@chevre/domain 21.2.0-alpha.15 → 21.2.0-alpha.151
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example/src/chevre/aggregateEventReservation.ts +1 -1
- package/example/src/chevre/aggregation/aggregateSystem.ts +85 -27
- package/example/src/chevre/countDelayedTasks.ts +7 -2
- package/example/src/chevre/deleteTasksByName.ts +10 -2
- package/example/src/chevre/findScreeningRoomsByBranchCode.ts +4 -3
- package/example/src/chevre/importEventsFromCOA.ts +3 -4
- package/example/src/chevre/lockStockHolder.ts +5 -2
- package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
- package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
- package/example/src/chevre/processPay.ts +5 -1
- package/example/src/chevre/processRegisterMembership.ts +8 -4
- package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
- package/example/src/chevre/processReserve.ts +5 -2
- package/example/src/chevre/saveTasks.ts +13 -10
- package/example/src/chevre/searchAbortedTasks.ts +34 -0
- package/example/src/chevre/searchActions.ts +33 -0
- package/example/src/chevre/searchEventSeats.ts +5 -2
- package/example/src/chevre/searchHoldReservations.ts +38 -0
- package/example/src/chevre/searchPaymentServiceProviders.ts +39 -0
- package/example/src/chevre/searchPermissions.ts +54 -0
- package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
- package/example/src/chevre/searchScreeningRooms.ts +35 -0
- package/example/src/chevre/searchSendEmailActions.ts +44 -0
- package/example/src/chevre/syncScreeningRooms.ts +22 -0
- package/example/src/chevre/syncScreeningRoomsAll.ts +44 -0
- package/example/src/chevre/task/executeTasks.ts +26 -0
- package/example/src/chevre/transaction/findCreditCard.ts +1 -1
- package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
- package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
- package/example/src/chevre/transaction/startExportTasks.ts +2 -1
- package/example/src/chevre/updateTransaction.ts +1 -1
- package/example/src/playOnMoment.ts +24 -0
- package/lib/chevre/credentials.d.ts +1 -0
- package/lib/chevre/credentials.js +2 -1
- package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
- package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
- package/lib/chevre/eventEmitter/task.d.ts +2 -1
- package/lib/chevre/eventEmitter/task.js +1 -4
- package/lib/chevre/eventEmitter/transaction.d.ts +1 -1
- package/lib/chevre/eventEmitter/transaction.js +1 -4
- package/lib/chevre/eventEmitter.d.ts +2 -1
- package/lib/chevre/eventEmitter.js +3 -1
- package/lib/chevre/index.d.ts +1 -1
- package/lib/chevre/index.js +2 -2
- package/lib/chevre/repo/account.js +3 -2
- package/lib/chevre/repo/accountTransaction.d.ts +3 -1
- package/lib/chevre/repo/accountTransaction.js +3 -2
- package/lib/chevre/repo/action.d.ts +42 -2
- package/lib/chevre/repo/action.js +130 -57
- package/lib/chevre/repo/additionalProperty.js +2 -1
- package/lib/chevre/repo/aggregation.d.ts +3 -0
- package/lib/chevre/repo/aggregation.js +3 -0
- package/lib/chevre/repo/assetTransaction.d.ts +23 -8
- package/lib/chevre/repo/assetTransaction.js +253 -80
- package/lib/chevre/repo/categoryCode.d.ts +1 -1
- package/lib/chevre/repo/categoryCode.js +37 -25
- package/lib/chevre/repo/code.js +3 -2
- package/lib/chevre/repo/comment.d.ts +4 -1
- package/lib/chevre/repo/comment.js +22 -6
- package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
- package/lib/chevre/repo/confirmationNumber.js +3 -15
- package/lib/chevre/repo/creativeWork.d.ts +2 -4
- package/lib/chevre/repo/creativeWork.js +35 -12
- package/lib/chevre/repo/customer.js +2 -1
- package/lib/chevre/repo/emailMessage.d.ts +1 -27
- package/lib/chevre/repo/emailMessage.js +2 -1
- package/lib/chevre/repo/event.d.ts +27 -1
- package/lib/chevre/repo/event.js +67 -33
- package/lib/chevre/repo/member.d.ts +14 -0
- package/lib/chevre/repo/member.js +31 -3
- package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
- package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -2
- package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +29 -3
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +13 -3
- package/lib/chevre/repo/mongoose/schemas/action.d.ts +43 -3
- package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
- package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +17 -3
- package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -2
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +44 -3
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
- package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +19 -3
- package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/comments.d.ts +27 -3
- package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +43 -3
- package/lib/chevre/repo/mongoose/schemas/customer.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/event.d.ts +71 -3
- package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
- package/lib/chevre/repo/mongoose/schemas/holdReservation.js +93 -0
- package/lib/chevre/repo/mongoose/schemas/member.d.ts +13 -3
- package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/offer.d.ts +65 -3
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +27 -3
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
- package/lib/chevre/repo/mongoose/schemas/order.d.ts +51 -3
- package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/place.d.ts +55 -3
- package/lib/chevre/repo/mongoose/schemas/place.js +16 -1
- package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +29 -3
- package/lib/chevre/repo/mongoose/schemas/product.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/product.js +6 -0
- package/lib/chevre/repo/mongoose/schemas/project.d.ts +23 -3
- package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -5
- package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/role.d.ts +11 -3
- package/lib/chevre/repo/mongoose/schemas/seller.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +11 -3
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/task.d.ts +30 -3
- package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +40 -3
- package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/trip.d.ts +11 -3
- package/lib/chevre/repo/offer.js +3 -2
- package/lib/chevre/repo/offerCatalog.js +0 -27
- package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
- package/lib/chevre/repo/offerItemCondition.js +121 -0
- package/lib/chevre/repo/order.d.ts +55 -3
- package/lib/chevre/repo/order.js +62 -10
- package/lib/chevre/repo/ownershipInfo.js +2 -7
- package/lib/chevre/repo/place.d.ts +189 -27
- package/lib/chevre/repo/place.js +1696 -702
- package/lib/chevre/repo/priceSpecification.js +3 -2
- package/lib/chevre/repo/product.d.ts +27 -3
- package/lib/chevre/repo/product.js +142 -5
- package/lib/chevre/repo/project.js +2 -1
- package/lib/chevre/repo/reservation.d.ts +20 -4
- package/lib/chevre/repo/reservation.js +40 -59
- package/lib/chevre/repo/role.d.ts +7 -0
- package/lib/chevre/repo/role.js +39 -2
- package/lib/chevre/repo/seller.d.ts +1 -1
- package/lib/chevre/repo/seller.js +44 -23
- package/lib/chevre/repo/serviceOutput.js +2 -1
- package/lib/chevre/repo/stockHolder.d.ts +143 -7
- package/lib/chevre/repo/stockHolder.js +622 -104
- package/lib/chevre/repo/task.d.ts +42 -2
- package/lib/chevre/repo/task.js +68 -20
- package/lib/chevre/repo/transaction.d.ts +21 -2
- package/lib/chevre/repo/transaction.js +160 -48
- package/lib/chevre/repo/trip.js +2 -1
- package/lib/chevre/repository.d.ts +5 -2
- package/lib/chevre/repository.js +8 -4
- package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +18 -8
- package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -8
- package/lib/chevre/service/aggregation/system.d.ts +110 -23
- package/lib/chevre/service/aggregation/system.js +213 -91
- package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +2 -24
- package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
- package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
- package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
- package/lib/chevre/service/assetTransaction/pay.js +20 -34
- package/lib/chevre/service/assetTransaction/refund.js +2 -24
- package/lib/chevre/service/assetTransaction/registerService.js +1 -25
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
- package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
- package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
- package/lib/chevre/service/assetTransaction/reserve.js +93 -70
- package/lib/chevre/service/assetTransaction.d.ts +6 -0
- package/lib/chevre/service/assetTransaction.js +9 -4
- package/lib/chevre/service/event.d.ts +3 -0
- package/lib/chevre/service/event.js +55 -22
- package/lib/chevre/service/iam.d.ts +6 -2
- package/lib/chevre/service/iam.js +23 -9
- package/lib/chevre/service/notification/factory.js +2 -2
- package/lib/chevre/service/notification.d.ts +3 -1
- package/lib/chevre/service/notification.js +41 -7
- package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
- package/lib/chevre/service/offer/event/authorize.js +8 -2
- package/lib/chevre/service/offer/event/factory.d.ts +3 -0
- package/lib/chevre/service/offer/event/factory.js +16 -5
- package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
- package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
- package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
- package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
- package/lib/chevre/service/offer/product.js +2 -2
- package/lib/chevre/service/offer.d.ts +16 -8
- package/lib/chevre/service/offer.js +72 -9
- package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
- package/lib/chevre/service/order/deleteOrder.js +8 -8
- package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
- package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
- package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
- package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
- package/lib/chevre/service/order/onOrderUpdated.js +22 -0
- package/lib/chevre/service/order/placeOrder.d.ts +1 -0
- package/lib/chevre/service/order/placeOrder.js +41 -24
- package/lib/chevre/service/order/returnOrder.d.ts +1 -0
- package/lib/chevre/service/order/returnOrder.js +7 -12
- package/lib/chevre/service/order/sendOrder.d.ts +1 -0
- package/lib/chevre/service/order/sendOrder.js +7 -10
- package/lib/chevre/service/order.d.ts +2 -1
- package/lib/chevre/service/order.js +3 -1
- package/lib/chevre/service/payment/any/onPaid.js +1 -1
- package/lib/chevre/service/payment/any/onRefund.js +1 -1
- package/lib/chevre/service/payment/any.d.ts +9 -5
- package/lib/chevre/service/payment/any.js +80 -18
- package/lib/chevre/service/payment/creditCard.d.ts +1 -1
- package/lib/chevre/service/payment/creditCard.js +23 -17
- package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
- package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
- package/lib/chevre/service/payment/movieTicket/validation.js +65 -37
- package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
- package/lib/chevre/service/payment/movieTicket.js +7 -6
- package/lib/chevre/service/product.js +1 -5
- package/lib/chevre/service/report/telemetry.d.ts +0 -11
- package/lib/chevre/service/report/telemetry.js +21 -24
- package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
- package/lib/chevre/service/reserve/cancelReservation.js +162 -142
- package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
- package/lib/chevre/service/reserve/checkInReservation.js +77 -3
- package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
- package/lib/chevre/service/reserve/confirmReservation.js +133 -58
- package/lib/chevre/service/reserve/factory.d.ts +1 -1
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
- package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
- package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
- package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
- package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
- package/lib/chevre/service/reserve/useReservation.js +61 -71
- package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
- package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
- package/lib/chevre/service/reserve.d.ts +3 -2
- package/lib/chevre/service/reserve.js +4 -2
- package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
- package/lib/chevre/service/task/cancelPendingReservation.js +6 -2
- package/lib/chevre/service/task/cancelReservation.js +1 -1
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
- package/lib/chevre/service/task/deleteTransaction.js +10 -8
- package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
- package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
- package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
- package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
- package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
- package/lib/chevre/service/task/onResourceUpdated.d.ts +10 -0
- package/lib/chevre/service/task/onResourceUpdated.js +418 -0
- package/lib/chevre/service/task/placeOrder.js +1 -1
- package/lib/chevre/service/task/reserve.js +10 -7
- package/lib/chevre/service/task/returnOrder.js +1 -1
- package/lib/chevre/service/task/returnPayTransaction.js +2 -12
- package/lib/chevre/service/task/sendOrder.js +1 -1
- package/lib/chevre/service/task/syncScreeningRooms.d.ts +7 -0
- package/lib/chevre/service/task/syncScreeningRooms.js +24 -0
- package/lib/chevre/service/task/useReservation.d.ts +7 -0
- package/lib/chevre/service/task/useReservation.js +36 -0
- package/lib/chevre/service/task/voidReserveTransaction.js +4 -2
- package/lib/chevre/service/task.d.ts +6 -0
- package/lib/chevre/service/task.js +22 -4
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
- package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
- package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
- package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
- package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
- package/lib/chevre/service/transaction/moneyTransfer.js +10 -13
- package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
- package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
- package/lib/chevre/service/transaction/orderProgramMembership.js +7 -3
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
- package/lib/chevre/service/transaction/placeOrder.js +1 -5
- package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
- package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
- package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
- package/lib/chevre/service/transaction/placeOrderInProgress.js +28 -15
- package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
- package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
- package/lib/chevre/service/transaction/returnOrder.js +228 -36
- package/lib/chevre/service/transaction.d.ts +7 -13
- package/lib/chevre/service/transaction.js +12 -139
- package/lib/chevre/settings.d.ts +15 -2
- package/lib/chevre/settings.js +58 -7
- package/package.json +5 -5
- package/example/src/chevre/createManyEventsIfNotExist.ts +0 -205
- package/example/src/chevre/eventCatalog2eventService.ts +0 -123
- package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
- package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
- package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
- package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
- package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
- package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
|
@@ -17,6 +17,9 @@ interface IStatus {
|
|
|
17
17
|
export interface IAggregateTask {
|
|
18
18
|
statuses: IStatus[];
|
|
19
19
|
}
|
|
20
|
+
interface IOptionOnCreate {
|
|
21
|
+
emitImmediately: boolean;
|
|
22
|
+
}
|
|
20
23
|
/**
|
|
21
24
|
* タスクリポジトリ
|
|
22
25
|
*/
|
|
@@ -24,16 +27,43 @@ export declare class MongoRepository {
|
|
|
24
27
|
readonly taskModel: typeof Model;
|
|
25
28
|
constructor(connection: Connection);
|
|
26
29
|
static CREATE_MONGO_CONDITIONS(params: factory.task.ISearchConditions): any[];
|
|
27
|
-
saveMany(taskAttributes: factory.task.IAttributes<factory.taskName>[]): Promise<{
|
|
30
|
+
saveMany(taskAttributes: factory.task.IAttributes<factory.taskName>[], options: IOptionOnCreate): Promise<{
|
|
28
31
|
id: string;
|
|
29
32
|
}[]>;
|
|
30
|
-
createInformTaskIfNotExist(params: factory.task.IAttributes<factory.taskName.TriggerWebhook
|
|
33
|
+
createInformTaskIfNotExist(params: factory.task.IAttributes<factory.taskName.TriggerWebhook>, options: IOptionOnCreate): Promise<void>;
|
|
31
34
|
executeById(params: {
|
|
32
35
|
id: string;
|
|
36
|
+
executor: {
|
|
37
|
+
name: string;
|
|
38
|
+
};
|
|
33
39
|
}): Promise<factory.task.ITask<factory.taskName> | null>;
|
|
34
40
|
executeOneByName<T extends factory.taskName>(params: {
|
|
35
41
|
name: T;
|
|
42
|
+
executor: {
|
|
43
|
+
name: string;
|
|
44
|
+
};
|
|
36
45
|
}): Promise<factory.task.ITask<T> | null>;
|
|
46
|
+
/**
|
|
47
|
+
* 一定期間遅延したタスクを実行する
|
|
48
|
+
*/
|
|
49
|
+
executeTasks(params: {
|
|
50
|
+
now: Date;
|
|
51
|
+
/**
|
|
52
|
+
* 指定期間遅延しているタスクを実行する
|
|
53
|
+
*/
|
|
54
|
+
delayInSeconds: number;
|
|
55
|
+
limit: number;
|
|
56
|
+
name: {
|
|
57
|
+
/**
|
|
58
|
+
* 指定タスクのみ実行する
|
|
59
|
+
*/
|
|
60
|
+
$in?: factory.taskName[];
|
|
61
|
+
/**
|
|
62
|
+
* 指定タスク以外のみ実行する
|
|
63
|
+
*/
|
|
64
|
+
$nin?: factory.taskName[];
|
|
65
|
+
};
|
|
66
|
+
}): Promise<Pick<import("@chevre/factory/lib/task").ITask | import("@chevre/factory/lib/task/confirmMoneyTransfer").ITask | import("@chevre/factory/lib/task/confirmRegisterService").ITask | import("@chevre/factory/lib/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/task/deleteTransaction").ITask | import("@chevre/factory/lib/task/givePointAward").ITask | import("@chevre/factory/lib/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/task/onEventChanged").ITask | import("@chevre/factory/lib/task/onResourceUpdated").ITask | import("@chevre/factory/lib/task/orderProgramMembership").ITask | import("@chevre/factory/lib/task/placeOrder").ITask | import("@chevre/factory/lib/task/returnOrder").ITask | import("@chevre/factory/lib/task/returnMoneyTransfer").ITask | import("@chevre/factory/lib/task/returnPayTransaction").ITask | import("@chevre/factory/lib/task/returnPointAward").ITask | import("@chevre/factory/lib/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/task/sendEmailMessage").ITask | import("@chevre/factory/lib/task/sendOrder").ITask | import("@chevre/factory/lib/task/syncScreeningRooms").ITask | import("@chevre/factory/lib/task/triggerWebhook").ITask | import("@chevre/factory/lib/task/useReservation").ITask | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").ITask | import("@chevre/factory/lib/task/voidPayTransaction").ITask | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/voidReserveTransaction").ITask, "id" | "name" | "status">[]>;
|
|
37
67
|
retry(params: {
|
|
38
68
|
intervalInMinutes: number;
|
|
39
69
|
}): Promise<void>;
|
|
@@ -63,9 +93,19 @@ export declare class MongoRepository {
|
|
|
63
93
|
}): Promise<void>;
|
|
64
94
|
deleteByName(params: {
|
|
65
95
|
name: factory.taskName;
|
|
96
|
+
status?: {
|
|
97
|
+
$eq?: factory.taskStatus;
|
|
98
|
+
};
|
|
99
|
+
runsAt?: {
|
|
100
|
+
$gte: Date;
|
|
101
|
+
$lte: Date;
|
|
102
|
+
};
|
|
66
103
|
}): Promise<import("mongodb").DeleteResult>;
|
|
67
104
|
countDelayedTasks(params: {
|
|
68
105
|
delayInSeconds: number;
|
|
106
|
+
name: {
|
|
107
|
+
$nin?: factory.taskName[];
|
|
108
|
+
};
|
|
69
109
|
}): Promise<number>;
|
|
70
110
|
aggregateTask(params: {
|
|
71
111
|
project?: {
|
package/lib/chevre/repo/task.js
CHANGED
|
@@ -14,6 +14,7 @@ const moment = require("moment");
|
|
|
14
14
|
const factory = require("../factory");
|
|
15
15
|
const task_1 = require("./mongoose/schemas/task");
|
|
16
16
|
const task_2 = require("../eventEmitter/task");
|
|
17
|
+
const settings_1 = require("../settings");
|
|
17
18
|
/**
|
|
18
19
|
* タスク実行時のソート条件
|
|
19
20
|
*/
|
|
@@ -150,8 +151,9 @@ class MongoRepository {
|
|
|
150
151
|
}
|
|
151
152
|
return andConditions;
|
|
152
153
|
}
|
|
153
|
-
saveMany(taskAttributes) {
|
|
154
|
+
saveMany(taskAttributes, options) {
|
|
154
155
|
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
const emitImmediately = (options === null || options === void 0 ? void 0 : options.emitImmediately) === true;
|
|
155
157
|
if (taskAttributes.length > 0) {
|
|
156
158
|
const result = yield this.taskModel.insertMany(taskAttributes, { ordered: false, rawResult: true });
|
|
157
159
|
if (result.insertedCount !== taskAttributes.length) {
|
|
@@ -161,12 +163,20 @@ class MongoRepository {
|
|
|
161
163
|
.map((objectId) => {
|
|
162
164
|
return { id: objectId.toHexString() };
|
|
163
165
|
});
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
if (emitImmediately) {
|
|
167
|
+
savedTasks.forEach((savedTask) => {
|
|
168
|
+
task_2.taskEventEmitter.emitTaskStatusChanged({
|
|
169
|
+
id: savedTask.id,
|
|
170
|
+
status: factory.taskStatus.Ready
|
|
171
|
+
});
|
|
168
172
|
});
|
|
169
|
-
|
|
173
|
+
// taskAttributes.forEach((savedTask) => {
|
|
174
|
+
// taskEventEmitter.emitTaskStatusChanged({
|
|
175
|
+
// name: savedTask.name,
|
|
176
|
+
// status: factory.taskStatus.Ready
|
|
177
|
+
// });
|
|
178
|
+
// });
|
|
179
|
+
}
|
|
170
180
|
// return result.ops;
|
|
171
181
|
return savedTasks;
|
|
172
182
|
}
|
|
@@ -175,9 +185,9 @@ class MongoRepository {
|
|
|
175
185
|
}
|
|
176
186
|
});
|
|
177
187
|
}
|
|
178
|
-
createInformTaskIfNotExist(params) {
|
|
188
|
+
createInformTaskIfNotExist(params, options) {
|
|
179
189
|
return __awaiter(this, void 0, void 0, function* () {
|
|
180
|
-
yield this.taskModel.findOneAndUpdate({
|
|
190
|
+
const createdTask = yield this.taskModel.findOneAndUpdate({
|
|
181
191
|
'project.id': { $eq: params.project.id },
|
|
182
192
|
name: params.name,
|
|
183
193
|
'data.object.id': {
|
|
@@ -185,7 +195,15 @@ class MongoRepository {
|
|
|
185
195
|
$eq: String(params.data.object.id)
|
|
186
196
|
}
|
|
187
197
|
}, { $setOnInsert: params }, { new: true, upsert: true })
|
|
198
|
+
.select({ _id: 1 })
|
|
188
199
|
.exec();
|
|
200
|
+
if (options.emitImmediately) {
|
|
201
|
+
task_2.taskEventEmitter.emitTaskStatusChanged({
|
|
202
|
+
id: createdTask.id,
|
|
203
|
+
name: params.name,
|
|
204
|
+
status: factory.taskStatus.Ready
|
|
205
|
+
});
|
|
206
|
+
}
|
|
189
207
|
});
|
|
190
208
|
}
|
|
191
209
|
executeById(params) {
|
|
@@ -200,9 +218,9 @@ class MongoRepository {
|
|
|
200
218
|
$inc: {
|
|
201
219
|
remainingNumberOfTries: -1,
|
|
202
220
|
numberOfTried: 1 // トライ回数増やす
|
|
203
|
-
}
|
|
221
|
+
},
|
|
222
|
+
executor: params.executor
|
|
204
223
|
}, { new: true })
|
|
205
|
-
// .sort(sortOrder4executionOfTasks)
|
|
206
224
|
.exec();
|
|
207
225
|
if (doc === null) {
|
|
208
226
|
// tslint:disable-next-line:no-null-keyword
|
|
@@ -223,7 +241,8 @@ class MongoRepository {
|
|
|
223
241
|
$inc: {
|
|
224
242
|
remainingNumberOfTries: -1,
|
|
225
243
|
numberOfTried: 1 // トライ回数増やす
|
|
226
|
-
}
|
|
244
|
+
},
|
|
245
|
+
executor: params.executor
|
|
227
246
|
}, { new: true })
|
|
228
247
|
.sort(sortOrder4executionOfTasks)
|
|
229
248
|
.exec();
|
|
@@ -234,6 +253,35 @@ class MongoRepository {
|
|
|
234
253
|
return doc.toObject();
|
|
235
254
|
});
|
|
236
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* 一定期間遅延したタスクを実行する
|
|
258
|
+
*/
|
|
259
|
+
executeTasks(params) {
|
|
260
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
261
|
+
const runsAtLt = moment(params.now)
|
|
262
|
+
.add(-params.delayInSeconds, 'seconds')
|
|
263
|
+
.toDate();
|
|
264
|
+
const delayedTasks = yield this.taskModel.find(Object.assign(Object.assign({ status: { $eq: factory.taskStatus.Ready }, runsAt: { $lt: runsAtLt } }, (Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined), (Array.isArray(params.name.$nin)) ? { name: { $nin: params.name.$nin } } : undefined))
|
|
265
|
+
.select({
|
|
266
|
+
_id: 1,
|
|
267
|
+
name: 1,
|
|
268
|
+
status: 1
|
|
269
|
+
})
|
|
270
|
+
.limit(params.limit)
|
|
271
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
272
|
+
.exec();
|
|
273
|
+
if (delayedTasks.length > 0) {
|
|
274
|
+
delayedTasks.forEach((delayedTask) => {
|
|
275
|
+
task_2.taskEventEmitter.emitTaskStatusChanged({
|
|
276
|
+
id: delayedTask.id,
|
|
277
|
+
name: delayedTask.name,
|
|
278
|
+
status: delayedTask.status
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return delayedTasks;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
237
285
|
retry(params) {
|
|
238
286
|
return __awaiter(this, void 0, void 0, function* () {
|
|
239
287
|
const lastTriedAtShoudBeLessThan = moment()
|
|
@@ -328,7 +376,7 @@ class MongoRepository {
|
|
|
328
376
|
return __awaiter(this, void 0, void 0, function* () {
|
|
329
377
|
const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
|
|
330
378
|
return this.taskModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
|
|
331
|
-
.setOptions({ maxTimeMS:
|
|
379
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
332
380
|
.exec();
|
|
333
381
|
});
|
|
334
382
|
}
|
|
@@ -350,7 +398,7 @@ class MongoRepository {
|
|
|
350
398
|
if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.runsAt) !== undefined) {
|
|
351
399
|
query.sort({ runsAt: params.sort.runsAt });
|
|
352
400
|
}
|
|
353
|
-
return query.setOptions({ maxTimeMS:
|
|
401
|
+
return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
354
402
|
.exec()
|
|
355
403
|
.then((docs) => docs.map((doc) => doc.toObject()));
|
|
356
404
|
});
|
|
@@ -364,10 +412,13 @@ class MongoRepository {
|
|
|
364
412
|
});
|
|
365
413
|
}
|
|
366
414
|
deleteByName(params) {
|
|
415
|
+
var _a, _b;
|
|
367
416
|
return __awaiter(this, void 0, void 0, function* () {
|
|
368
|
-
return this.taskModel.deleteMany({
|
|
369
|
-
|
|
370
|
-
|
|
417
|
+
return this.taskModel.deleteMany(Object.assign(Object.assign({ name: { $eq: params.name } }, (typeof ((_a = params.status) === null || _a === void 0 ? void 0 : _a.$eq) === 'string') ? { status: { $eq: params.status.$eq } } : undefined), (((_b = params.runsAt) === null || _b === void 0 ? void 0 : _b.$gte) instanceof Date)
|
|
418
|
+
? {
|
|
419
|
+
runsAt: { $gte: params.runsAt.$gte, $lte: params.runsAt.$lte }
|
|
420
|
+
}
|
|
421
|
+
: undefined))
|
|
371
422
|
.exec();
|
|
372
423
|
});
|
|
373
424
|
}
|
|
@@ -376,10 +427,7 @@ class MongoRepository {
|
|
|
376
427
|
const runsAtLt = moment()
|
|
377
428
|
.add(-params.delayInSeconds, 'seconds')
|
|
378
429
|
.toDate();
|
|
379
|
-
return this.taskModel.count({
|
|
380
|
-
status: factory.taskStatus.Ready,
|
|
381
|
-
runsAt: { $lt: runsAtLt }
|
|
382
|
-
})
|
|
430
|
+
return this.taskModel.count(Object.assign({ status: factory.taskStatus.Ready, runsAt: { $lt: runsAtLt } }, (Array.isArray(params.name.$nin)) ? { name: { $nin: params.name.$nin } } : undefined))
|
|
383
431
|
.exec();
|
|
384
432
|
});
|
|
385
433
|
}
|
|
@@ -40,6 +40,8 @@ export declare class MongoRepository {
|
|
|
40
40
|
findById<T extends factory.transactionType>(params: {
|
|
41
41
|
typeOf: T;
|
|
42
42
|
id: string;
|
|
43
|
+
inclusion?: string[];
|
|
44
|
+
exclusion?: string[];
|
|
43
45
|
}): Promise<factory.transaction.ITransaction<T>>;
|
|
44
46
|
/**
|
|
45
47
|
* 進行中の取引を取得する
|
|
@@ -112,6 +114,11 @@ export declare class MongoRepository {
|
|
|
112
114
|
};
|
|
113
115
|
status: factory.transactionStatusType;
|
|
114
116
|
id?: string;
|
|
117
|
+
tasksExportAction: {
|
|
118
|
+
agent: {
|
|
119
|
+
name: string;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
115
122
|
}): Promise<Pick<factory.transaction.ITransaction<T>, 'id' | 'typeOf'> | null>;
|
|
116
123
|
/**
|
|
117
124
|
* タスクエクスポートリトライ
|
|
@@ -120,6 +127,16 @@ export declare class MongoRepository {
|
|
|
120
127
|
reexportTasks(params: {
|
|
121
128
|
intervalInMinutes: number;
|
|
122
129
|
}): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* タスクエクスポートの遅延している取引について明示的にemitTransactionStatusChangedを実行する
|
|
132
|
+
*/
|
|
133
|
+
exportTasks(params: {
|
|
134
|
+
now: Date;
|
|
135
|
+
delayInSeconds: number;
|
|
136
|
+
status: {
|
|
137
|
+
$in: factory.transactionStatusType[];
|
|
138
|
+
};
|
|
139
|
+
}): Promise<Pick<import("@chevre/factory/lib/transaction/moneyTransfer").ITransaction | import("@chevre/factory/lib/transaction/placeOrder").ITransaction | import("@chevre/factory/lib/transaction/returnOrder").ITransaction, "id" | "typeOf" | "status">[]>;
|
|
123
140
|
/**
|
|
124
141
|
* set task status exported by transaction id
|
|
125
142
|
* IDでタスクをエクスポート済に変更する
|
|
@@ -131,7 +148,9 @@ export declare class MongoRepository {
|
|
|
131
148
|
* 取引を期限切れにする
|
|
132
149
|
*/
|
|
133
150
|
makeExpired(params: {
|
|
134
|
-
expires:
|
|
151
|
+
expires: {
|
|
152
|
+
$lt: Date;
|
|
153
|
+
};
|
|
135
154
|
}): Promise<void>;
|
|
136
155
|
/**
|
|
137
156
|
* 取引を中止する
|
|
@@ -151,7 +170,7 @@ export declare class MongoRepository {
|
|
|
151
170
|
/**
|
|
152
171
|
* 特定の取引を更新する(汎用)
|
|
153
172
|
*/
|
|
154
|
-
|
|
173
|
+
findByIdAndUpdateInProgress(params: {
|
|
155
174
|
id: string;
|
|
156
175
|
update: {
|
|
157
176
|
$set?: any;
|
|
@@ -14,6 +14,7 @@ const moment = require("moment");
|
|
|
14
14
|
const factory = require("../factory");
|
|
15
15
|
const transaction_1 = require("./mongoose/schemas/transaction");
|
|
16
16
|
const transaction_2 = require("../eventEmitter/transaction");
|
|
17
|
+
const settings_1 = require("../settings");
|
|
17
18
|
/**
|
|
18
19
|
* 取引リポジトリ
|
|
19
20
|
*/
|
|
@@ -264,7 +265,9 @@ class MongoRepository {
|
|
|
264
265
|
else {
|
|
265
266
|
expires = params.expires;
|
|
266
267
|
}
|
|
267
|
-
return this.transactionModel.create(Object.assign(Object.assign({}, params), { typeOf: params.typeOf, status: factory.transactionStatusType.InProgress, startDate, endDate: undefined, expires,
|
|
268
|
+
return this.transactionModel.create(Object.assign(Object.assign({}, params), { typeOf: params.typeOf, status: factory.transactionStatusType.InProgress, startDate, endDate: undefined, expires, tasksExportAction: {
|
|
269
|
+
actionStatus: factory.actionStatusType.PotentialActionStatus
|
|
270
|
+
}, tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported }))
|
|
268
271
|
.then((doc) => doc.toObject());
|
|
269
272
|
});
|
|
270
273
|
}
|
|
@@ -273,10 +276,29 @@ class MongoRepository {
|
|
|
273
276
|
*/
|
|
274
277
|
findById(params) {
|
|
275
278
|
return __awaiter(this, void 0, void 0, function* () {
|
|
279
|
+
let projection = {};
|
|
280
|
+
if (Array.isArray(params.inclusion) && params.inclusion.length > 0) {
|
|
281
|
+
params.inclusion.forEach((field) => {
|
|
282
|
+
projection[field] = 1;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
projection = {
|
|
287
|
+
__v: 0,
|
|
288
|
+
createdAt: 0,
|
|
289
|
+
updatedAt: 0
|
|
290
|
+
};
|
|
291
|
+
if (Array.isArray(params.exclusion) && params.exclusion.length > 0) {
|
|
292
|
+
params.exclusion.forEach((field) => {
|
|
293
|
+
projection[field] = 0;
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
}
|
|
276
297
|
const doc = yield this.transactionModel.findOne({
|
|
277
298
|
_id: { $eq: params.id },
|
|
278
299
|
typeOf: { $eq: params.typeOf }
|
|
279
300
|
})
|
|
301
|
+
.select(projection)
|
|
280
302
|
.exec();
|
|
281
303
|
if (doc === null) {
|
|
282
304
|
throw new factory.errors.NotFound(this.transactionModel.modelName);
|
|
@@ -292,7 +314,9 @@ class MongoRepository {
|
|
|
292
314
|
const doc = yield this.transactionModel.findOne({
|
|
293
315
|
_id: { $eq: params.id },
|
|
294
316
|
typeOf: { $eq: params.typeOf },
|
|
295
|
-
status: { $eq: factory.transactionStatusType.InProgress }
|
|
317
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
318
|
+
// expiresを条件に追加(2023-05-12~),
|
|
319
|
+
expires: { $gt: new Date() }
|
|
296
320
|
})
|
|
297
321
|
.exec();
|
|
298
322
|
if (doc === null) {
|
|
@@ -344,9 +368,9 @@ class MongoRepository {
|
|
|
344
368
|
var _a, _b;
|
|
345
369
|
return __awaiter(this, void 0, void 0, function* () {
|
|
346
370
|
const doc = yield this.transactionModel.findOneAndUpdate({
|
|
347
|
-
_id: params.id,
|
|
348
|
-
typeOf: params.typeOf,
|
|
349
|
-
status: factory.transactionStatusType.InProgress
|
|
371
|
+
_id: { $eq: params.id },
|
|
372
|
+
typeOf: { $eq: params.typeOf },
|
|
373
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
350
374
|
}, {
|
|
351
375
|
$set: Object.assign(Object.assign({ 'agent.id': params.agent.id }, (typeof params.agent.name === 'string') ? { 'agent.name': params.agent.name } : undefined), (typeof ((_b = (_a = params.object) === null || _a === void 0 ? void 0 : _a.customer) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { 'object.customer': params.object.customer } : undefined)
|
|
352
376
|
}, {
|
|
@@ -364,9 +388,9 @@ class MongoRepository {
|
|
|
364
388
|
updateExpires(params) {
|
|
365
389
|
return __awaiter(this, void 0, void 0, function* () {
|
|
366
390
|
const doc = yield this.transactionModel.findOneAndUpdate({
|
|
367
|
-
_id: params.id,
|
|
368
|
-
typeOf: params.typeOf,
|
|
369
|
-
status: factory.transactionStatusType.InProgress
|
|
391
|
+
_id: { $eq: params.id },
|
|
392
|
+
typeOf: { $eq: params.typeOf },
|
|
393
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
370
394
|
}, {
|
|
371
395
|
$set: {
|
|
372
396
|
expires: params.expires
|
|
@@ -388,9 +412,9 @@ class MongoRepository {
|
|
|
388
412
|
var _a;
|
|
389
413
|
return __awaiter(this, void 0, void 0, function* () {
|
|
390
414
|
const doc = yield this.transactionModel.findOneAndUpdate({
|
|
391
|
-
_id: params.id,
|
|
392
|
-
typeOf: params.typeOf,
|
|
393
|
-
status: factory.transactionStatusType.InProgress
|
|
415
|
+
_id: { $eq: params.id },
|
|
416
|
+
typeOf: { $eq: params.typeOf },
|
|
417
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
394
418
|
}, {
|
|
395
419
|
$set: Object.assign({}, (typeof ((_a = params.object) === null || _a === void 0 ? void 0 : _a.name) === 'string') ? { 'object.name': params.object.name } : undefined)
|
|
396
420
|
}, {
|
|
@@ -408,9 +432,9 @@ class MongoRepository {
|
|
|
408
432
|
confirm(params) {
|
|
409
433
|
return __awaiter(this, void 0, void 0, function* () {
|
|
410
434
|
const doc = yield this.transactionModel.findOneAndUpdate({
|
|
411
|
-
_id: params.id,
|
|
412
|
-
typeOf: params.typeOf,
|
|
413
|
-
status: factory.transactionStatusType.InProgress
|
|
435
|
+
_id: { $eq: params.id },
|
|
436
|
+
typeOf: { $eq: params.typeOf },
|
|
437
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
414
438
|
}, {
|
|
415
439
|
status: factory.transactionStatusType.Confirmed,
|
|
416
440
|
endDate: new Date(),
|
|
@@ -425,23 +449,14 @@ class MongoRepository {
|
|
|
425
449
|
// NotFoundであれば取引状態確認
|
|
426
450
|
if (doc === null) {
|
|
427
451
|
const transaction = yield this.findById({ typeOf: params.typeOf, id: params.id });
|
|
428
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
429
|
-
/* istanbul ignore next */
|
|
430
452
|
if (transaction.status === factory.transactionStatusType.Confirmed) {
|
|
431
|
-
//
|
|
432
|
-
return;
|
|
433
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
434
|
-
/* istanbul ignore next */
|
|
453
|
+
// すでに確定済の場合スルー
|
|
435
454
|
}
|
|
436
455
|
else if (transaction.status === factory.transactionStatusType.Expired) {
|
|
437
456
|
throw new factory.errors.Argument('Transaction id', 'Already expired');
|
|
438
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
439
|
-
/* istanbul ignore next */
|
|
440
457
|
}
|
|
441
458
|
else if (transaction.status === factory.transactionStatusType.Canceled) {
|
|
442
459
|
throw new factory.errors.Argument('Transaction id', 'Already canceled');
|
|
443
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
444
|
-
/* istanbul ignore next */
|
|
445
460
|
}
|
|
446
461
|
else {
|
|
447
462
|
throw new factory.errors.NotFound(this.transactionModel.modelName);
|
|
@@ -460,8 +475,19 @@ class MongoRepository {
|
|
|
460
475
|
startExportTasks(params) {
|
|
461
476
|
var _a;
|
|
462
477
|
return __awaiter(this, void 0, void 0, function* () {
|
|
478
|
+
switch (params.status) {
|
|
479
|
+
case factory.transactionStatusType.InProgress:
|
|
480
|
+
throw new factory.errors.NotImplemented(`status "${params.status}" not implemented on startExportTasks`);
|
|
481
|
+
default:
|
|
482
|
+
// no op
|
|
483
|
+
}
|
|
463
484
|
const typeOfIn = (_a = params.typeOf) === null || _a === void 0 ? void 0 : _a.$in;
|
|
464
|
-
return this.transactionModel.findOneAndUpdate(Object.assign(Object.assign(Object.assign(Object.assign({}, (params.project !== undefined) ? { 'project.id': { $eq: params.project.id } } : undefined), (Array.isArray(typeOfIn)) ? { typeOf: { $in: typeOfIn } } : undefined), { status: params.status, tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported }), (typeof params.id === 'string') ? { _id: { $eq: params.id } } : undefined), {
|
|
485
|
+
return this.transactionModel.findOneAndUpdate(Object.assign(Object.assign(Object.assign(Object.assign({}, (params.project !== undefined) ? { 'project.id': { $eq: params.project.id } } : undefined), (Array.isArray(typeOfIn)) ? { typeOf: { $in: typeOfIn } } : undefined), { status: { $eq: params.status }, tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Unexported } }), (typeof params.id === 'string') ? { _id: { $eq: params.id } } : undefined), {
|
|
486
|
+
'tasksExportAction.actionStatus': factory.actionStatusType.ActiveActionStatus,
|
|
487
|
+
'tasksExportAction.agent': { name: params.tasksExportAction.agent.name },
|
|
488
|
+
'tasksExportAction.startDate': new Date(),
|
|
489
|
+
tasksExportationStatus: factory.transactionTasksExportationStatus.Exporting
|
|
490
|
+
}, { new: true })
|
|
465
491
|
.select({
|
|
466
492
|
_id: 1,
|
|
467
493
|
typeOf: 1
|
|
@@ -478,17 +504,74 @@ class MongoRepository {
|
|
|
478
504
|
*/
|
|
479
505
|
reexportTasks(params) {
|
|
480
506
|
return __awaiter(this, void 0, void 0, function* () {
|
|
481
|
-
yield this.transactionModel.
|
|
482
|
-
tasksExportationStatus: factory.transactionTasksExportationStatus.Exporting,
|
|
507
|
+
const reexportingTransactions = yield this.transactionModel.find({
|
|
508
|
+
tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Exporting },
|
|
483
509
|
updatedAt: {
|
|
484
510
|
$lt: moment()
|
|
485
511
|
.add(-params.intervalInMinutes, 'minutes')
|
|
486
512
|
.toDate()
|
|
487
513
|
}
|
|
488
|
-
}, {
|
|
489
|
-
tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported
|
|
490
514
|
})
|
|
515
|
+
.select({
|
|
516
|
+
_id: 1,
|
|
517
|
+
typeOf: 1,
|
|
518
|
+
status: 1
|
|
519
|
+
})
|
|
520
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
521
|
+
.exec();
|
|
522
|
+
if (reexportingTransactions.length > 0) {
|
|
523
|
+
for (const reexportingTransaction of reexportingTransactions) {
|
|
524
|
+
yield this.transactionModel.updateOne({
|
|
525
|
+
_id: { $eq: reexportingTransaction.id },
|
|
526
|
+
tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Exporting }
|
|
527
|
+
}, {
|
|
528
|
+
tasksExportAction: {
|
|
529
|
+
actionStatus: factory.actionStatusType.PotentialActionStatus
|
|
530
|
+
},
|
|
531
|
+
tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported
|
|
532
|
+
})
|
|
533
|
+
.exec();
|
|
534
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
535
|
+
id: reexportingTransaction.id,
|
|
536
|
+
typeOf: reexportingTransaction.typeOf,
|
|
537
|
+
status: reexportingTransaction.status
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* タスクエクスポートの遅延している取引について明示的にemitTransactionStatusChangedを実行する
|
|
545
|
+
*/
|
|
546
|
+
exportTasks(params) {
|
|
547
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
548
|
+
const delayedTransactions = yield this.transactionModel.find({
|
|
549
|
+
status: { $in: params.status.$in },
|
|
550
|
+
tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Unexported },
|
|
551
|
+
endDate: {
|
|
552
|
+
$exists: true,
|
|
553
|
+
$lt: moment(params.now)
|
|
554
|
+
.add(-params.delayInSeconds, 'seconds')
|
|
555
|
+
.toDate()
|
|
556
|
+
}
|
|
557
|
+
})
|
|
558
|
+
.select({
|
|
559
|
+
_id: 1,
|
|
560
|
+
typeOf: 1,
|
|
561
|
+
status: 1
|
|
562
|
+
})
|
|
563
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
491
564
|
.exec();
|
|
565
|
+
if (delayedTransactions.length > 0) {
|
|
566
|
+
delayedTransactions.forEach((delayedTransaction) => {
|
|
567
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
568
|
+
id: delayedTransaction.id,
|
|
569
|
+
typeOf: delayedTransaction.typeOf,
|
|
570
|
+
status: delayedTransaction.status
|
|
571
|
+
});
|
|
572
|
+
});
|
|
573
|
+
}
|
|
574
|
+
return delayedTransactions;
|
|
492
575
|
});
|
|
493
576
|
}
|
|
494
577
|
/**
|
|
@@ -497,9 +580,15 @@ class MongoRepository {
|
|
|
497
580
|
*/
|
|
498
581
|
setTasksExportedById(params) {
|
|
499
582
|
return __awaiter(this, void 0, void 0, function* () {
|
|
500
|
-
|
|
583
|
+
const endDate = new Date();
|
|
584
|
+
yield this.transactionModel.updateOne({
|
|
585
|
+
_id: { $eq: params.id },
|
|
586
|
+
tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Exporting }
|
|
587
|
+
}, {
|
|
501
588
|
tasksExportationStatus: factory.transactionTasksExportationStatus.Exported,
|
|
502
|
-
tasksExportedAt:
|
|
589
|
+
tasksExportedAt: endDate,
|
|
590
|
+
'tasksExportAction.actionStatus': factory.actionStatusType.CompletedActionStatus,
|
|
591
|
+
'tasksExportAction.endDate': endDate
|
|
503
592
|
})
|
|
504
593
|
.exec();
|
|
505
594
|
});
|
|
@@ -509,15 +598,36 @@ class MongoRepository {
|
|
|
509
598
|
*/
|
|
510
599
|
makeExpired(params) {
|
|
511
600
|
return __awaiter(this, void 0, void 0, function* () {
|
|
512
|
-
//
|
|
513
|
-
yield this.transactionModel.
|
|
514
|
-
status: factory.transactionStatusType.InProgress,
|
|
515
|
-
expires: { $lt: params.expires }
|
|
516
|
-
}, {
|
|
517
|
-
status: factory.transactionStatusType.Expired,
|
|
518
|
-
endDate: new Date()
|
|
601
|
+
// IDをemitしたいのでまずリスト検索(2023-04-27~)
|
|
602
|
+
const expiringTransactions = yield this.transactionModel.find({
|
|
603
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
604
|
+
expires: { $lt: params.expires.$lt }
|
|
519
605
|
})
|
|
606
|
+
.select({
|
|
607
|
+
_id: 1,
|
|
608
|
+
typeOf: 1
|
|
609
|
+
})
|
|
610
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
520
611
|
.exec();
|
|
612
|
+
if (expiringTransactions.length > 0) {
|
|
613
|
+
// ステータスと期限を見て更新
|
|
614
|
+
yield this.transactionModel.updateMany({
|
|
615
|
+
_id: { $in: expiringTransactions.map((t) => t.id) },
|
|
616
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
617
|
+
expires: { $lt: params.expires.$lt }
|
|
618
|
+
}, {
|
|
619
|
+
status: factory.transactionStatusType.Expired,
|
|
620
|
+
endDate: new Date()
|
|
621
|
+
})
|
|
622
|
+
.exec();
|
|
623
|
+
expiringTransactions.forEach((expiringTransaction) => {
|
|
624
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
625
|
+
id: expiringTransaction.id,
|
|
626
|
+
typeOf: expiringTransaction.typeOf,
|
|
627
|
+
status: factory.transactionStatusType.Expired
|
|
628
|
+
});
|
|
629
|
+
});
|
|
630
|
+
}
|
|
521
631
|
});
|
|
522
632
|
}
|
|
523
633
|
/**
|
|
@@ -542,11 +652,8 @@ class MongoRepository {
|
|
|
542
652
|
// NotFoundであれば取引状態確認
|
|
543
653
|
if (doc === null) {
|
|
544
654
|
const transaction = yield this.findById(params);
|
|
545
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
546
|
-
/* istanbul ignore next */
|
|
547
655
|
if (transaction.status === factory.transactionStatusType.Canceled) {
|
|
548
|
-
//
|
|
549
|
-
return;
|
|
656
|
+
// すでに中止済の場合スルー
|
|
550
657
|
}
|
|
551
658
|
else if (transaction.status === factory.transactionStatusType.Expired) {
|
|
552
659
|
throw new factory.errors.Argument('Transaction id', 'Transaction already expired');
|
|
@@ -569,7 +676,7 @@ class MongoRepository {
|
|
|
569
676
|
return __awaiter(this, void 0, void 0, function* () {
|
|
570
677
|
const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
|
|
571
678
|
return this.transactionModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
|
|
572
|
-
.setOptions({ maxTimeMS:
|
|
679
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
573
680
|
.exec();
|
|
574
681
|
});
|
|
575
682
|
}
|
|
@@ -612,7 +719,7 @@ class MongoRepository {
|
|
|
612
719
|
}
|
|
613
720
|
// const explainResult = await (<any>query).explain();
|
|
614
721
|
// console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
|
|
615
|
-
return query.setOptions({ maxTimeMS:
|
|
722
|
+
return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
616
723
|
.exec()
|
|
617
724
|
.then((docs) => docs.map((doc) => doc.toObject()));
|
|
618
725
|
});
|
|
@@ -620,9 +727,12 @@ class MongoRepository {
|
|
|
620
727
|
/**
|
|
621
728
|
* 特定の取引を更新する(汎用)
|
|
622
729
|
*/
|
|
623
|
-
|
|
730
|
+
findByIdAndUpdateInProgress(params) {
|
|
624
731
|
return __awaiter(this, void 0, void 0, function* () {
|
|
625
|
-
yield this.transactionModel.findOneAndUpdate({
|
|
732
|
+
yield this.transactionModel.findOneAndUpdate({
|
|
733
|
+
_id: { $eq: params.id },
|
|
734
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
735
|
+
}, params.update, {
|
|
626
736
|
// new: true,
|
|
627
737
|
projection: { _id: 1 }
|
|
628
738
|
})
|
|
@@ -637,7 +747,8 @@ class MongoRepository {
|
|
|
637
747
|
saveOrderNumberIfNotExist(params) {
|
|
638
748
|
return __awaiter(this, void 0, void 0, function* () {
|
|
639
749
|
yield this.transactionModel.updateOne({
|
|
640
|
-
_id: params.id,
|
|
750
|
+
_id: { $eq: params.id },
|
|
751
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
641
752
|
'object.orderNumber': { $exists: false }
|
|
642
753
|
}, { 'object.orderNumber': params.orderNumber })
|
|
643
754
|
.exec();
|
|
@@ -646,7 +757,8 @@ class MongoRepository {
|
|
|
646
757
|
saveConfirmationNumberIfNotExist(params) {
|
|
647
758
|
return __awaiter(this, void 0, void 0, function* () {
|
|
648
759
|
yield this.transactionModel.updateOne({
|
|
649
|
-
_id: params.id,
|
|
760
|
+
_id: { $eq: params.id },
|
|
761
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
650
762
|
'object.confirmationNumber': { $exists: false }
|
|
651
763
|
}, { 'object.confirmationNumber': params.confirmationNumber })
|
|
652
764
|
.exec();
|