@chevre/domain 24.0.0-alpha.2 → 24.0.0-alpha.20
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/lib/chevre/repo/action/acceptCOAOffer.d.ts +23 -0
- package/lib/chevre/repo/action/acceptCOAOffer.js +64 -0
- package/lib/chevre/repo/action/acceptPay.d.ts +8 -0
- package/lib/chevre/repo/action/acceptPay.js +13 -0
- package/lib/chevre/repo/action/actionProcess.d.ts +115 -0
- package/lib/chevre/repo/action/actionProcess.js +293 -0
- package/lib/chevre/repo/action/authorizeOffer.d.ts +21 -0
- package/lib/chevre/repo/action/authorizeOffer.js +85 -0
- package/lib/chevre/repo/action/checkMovieTicket.d.ts +93 -0
- package/lib/chevre/repo/action/checkMovieTicket.js +200 -0
- package/lib/chevre/repo/action/checkThing.d.ts +8 -0
- package/lib/chevre/repo/action/checkThing.js +13 -0
- package/lib/chevre/repo/action.d.ts +9 -249
- package/lib/chevre/repo/action.js +308 -708
- package/lib/chevre/repo/aggregateAction.d.ts +102 -0
- package/lib/chevre/repo/aggregateAction.js +379 -0
- package/lib/chevre/repo/mongoose/schemas/transaction.js +31 -0
- package/lib/chevre/repo/orderInTransaction.d.ts +8 -0
- package/lib/chevre/repo/orderInTransaction.js +16 -2
- package/lib/chevre/repo/orderNumber.d.ts +3 -2
- package/lib/chevre/repo/orderNumber.js +23 -28
- package/lib/chevre/repo/transaction/moneyTransfer.d.ts +61 -0
- package/lib/chevre/repo/transaction/moneyTransfer.js +379 -0
- package/lib/chevre/repo/transaction/placeOrder.d.ts +140 -0
- package/lib/chevre/repo/transaction/placeOrder.js +528 -0
- package/lib/chevre/repo/transaction/returnOrder.d.ts +45 -0
- package/lib/chevre/repo/transaction/returnOrder.js +341 -0
- package/lib/chevre/repo/transaction.d.ts +1 -125
- package/lib/chevre/repo/transaction.js +726 -632
- package/lib/chevre/repository.d.ts +49 -0
- package/lib/chevre/repository.js +107 -2
- package/lib/chevre/service/aggregation/system.d.ts +10 -10
- package/lib/chevre/service/aggregation/system.js +9 -9
- package/lib/chevre/service/assetTransaction/pay/check.d.ts +5 -4
- package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +5 -2
- package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +3 -3
- package/lib/chevre/service/assetTransaction/pay/start/factory.d.ts +51 -3
- package/lib/chevre/service/assetTransaction/pay/start/factory.js +58 -21
- package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.d.ts +10 -0
- package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.js +88 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +55 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.js +56 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +3 -1
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +1 -11
- package/lib/chevre/service/assetTransaction/pay/start.d.ts +2 -0
- package/lib/chevre/service/assetTransaction/pay/start.js +8 -132
- package/lib/chevre/service/notification/triggerWebhook.d.ts +7 -6
- package/lib/chevre/service/offer/event/authorize.d.ts +2 -2
- package/lib/chevre/service/offer/event/authorize.js +3 -3
- package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +2 -2
- package/lib/chevre/service/offer/event/issueEventOfferTicket.js +1 -1
- package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +0 -2
- package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -0
- package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -2
- package/lib/chevre/service/offer/event/voidTransaction.js +2 -2
- package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +3 -3
- package/lib/chevre/service/offer/event/voidTransactionByActionId.js +2 -2
- package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +16 -5
- package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +7 -7
- package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +6 -4
- package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +3 -10
- package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +21 -13
- package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +19 -10
- package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +2 -2
- package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +2 -2
- package/lib/chevre/service/offer/moneyTransfer/authorize.js +6 -3
- package/lib/chevre/service/offer/moneyTransfer/voidTransaction.d.ts +2 -2
- package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +4 -1
- package/lib/chevre/service/offer/product.d.ts +3 -3
- package/lib/chevre/service/offer/product.js +4 -4
- package/lib/chevre/service/order/confirmPayTransaction.d.ts +0 -2
- package/lib/chevre/service/order/confirmPayTransaction.js +1 -0
- package/lib/chevre/service/order/findPlaceOrderTransaction.d.ts +2 -2
- package/lib/chevre/service/order/findPlaceOrderTransaction.js +1 -1
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.d.ts +16 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +97 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.d.ts +21 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +86 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.d.ts +22 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +112 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.d.ts +22 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.js +74 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +25 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +111 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.d.ts +16 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.js +74 -0
- package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +8 -30
- package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +37 -348
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +6 -7
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +6 -5
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +7 -6
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
- package/lib/chevre/service/order/payOrder.d.ts +2 -2
- package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +2 -2
- package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +1 -1
- package/lib/chevre/service/order/placeOrder.d.ts +13 -12
- package/lib/chevre/service/order/returnOrder.d.ts +2 -2
- package/lib/chevre/service/order/returnOrder.js +1 -1
- package/lib/chevre/service/order/sendOrder.d.ts +6 -6
- package/lib/chevre/service/order/sendOrder.js +10 -8
- package/lib/chevre/service/order.d.ts +3 -6
- package/lib/chevre/service/order.js +3 -9
- package/lib/chevre/service/payment/any/{fixOrderAsNeeded.d.ts → authorize/fixOrderAsNeeded.d.ts} +6 -6
- package/lib/chevre/service/payment/any/{fixOrderAsNeeded.js → authorize/fixOrderAsNeeded.js} +5 -8
- package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +3 -3
- package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +3 -3
- package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +1 -1
- package/lib/chevre/service/payment/any/authorize.d.ts +92 -0
- package/lib/chevre/service/payment/any/authorize.js +225 -0
- package/lib/chevre/service/payment/any/findAcceptAction.d.ts +43 -0
- package/lib/chevre/service/payment/any/findAcceptAction.js +94 -0
- package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +41 -0
- package/lib/chevre/service/payment/any/findAuthorizeAction.js +83 -0
- package/lib/chevre/service/payment/any/findCheckAction.d.ts +45 -0
- package/lib/chevre/service/payment/any/findCheckAction.js +89 -0
- package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +28 -0
- package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +185 -0
- package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +7 -3
- package/lib/chevre/service/payment/any/onPayActionCompleted.js +3 -0
- package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +29 -0
- package/lib/chevre/service/payment/any/processVoidPayTransaction.js +125 -0
- package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.d.ts +2 -2
- package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +66 -0
- package/lib/chevre/service/payment/any/publishPaymentUrl.js +133 -0
- package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +31 -0
- package/lib/chevre/service/payment/any/voidPayTransaction.js +38 -0
- package/lib/chevre/service/payment/any.d.ts +8 -305
- package/lib/chevre/service/payment/any.js +17 -857
- package/lib/chevre/service/payment/movieTicket/authorize.d.ts +2 -0
- package/lib/chevre/service/payment/movieTicket/checkMovieTicket.d.ts +3 -3
- package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +3 -3
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +11 -10
- package/lib/chevre/service/payment/movieTicket/validation.js +18 -15
- package/lib/chevre/service/report/telemetry.d.ts +4 -0
- package/lib/chevre/service/report/telemetry.js +7 -12
- package/lib/chevre/service/task/acceptCOAOffer.js +11 -6
- package/lib/chevre/service/task/authorizePayment.js +6 -2
- package/lib/chevre/service/task/checkMovieTicket.js +3 -3
- package/lib/chevre/service/task/checkResource.js +2 -2
- package/lib/chevre/service/task/confirmPayTransaction.js +2 -2
- package/lib/chevre/service/task/deleteTransaction.js +7 -1
- package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +4 -2
- package/lib/chevre/service/task/onOrderPaymentCompleted.js +2 -2
- package/lib/chevre/service/task/placeOrder.js +6 -4
- package/lib/chevre/service/task/publishPaymentUrl.js +8 -4
- package/lib/chevre/service/task/returnOrder.js +4 -4
- package/lib/chevre/service/task/returnPayTransaction.js +4 -3
- package/lib/chevre/service/task/sendOrder.js +4 -4
- package/lib/chevre/service/task/voidMoneyTransferTransaction.js +6 -3
- package/lib/chevre/service/task/voidPayTransaction.js +4 -2
- package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -3
- package/lib/chevre/service/task/voidReserveTransaction.js +4 -3
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +6 -0
- package/lib/chevre/service/transaction/deleteTransaction.js +56 -14
- package/lib/chevre/service/transaction/moneyTransfer.d.ts +5 -5
- package/lib/chevre/service/transaction/moneyTransfer.js +5 -5
- package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +2 -2
- package/lib/chevre/service/transaction/placeOrder/confirm.js +10 -9
- package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +7 -6
- package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -1
- package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.d.ts → issueOrderNumberIfNotExist.d.ts} +4 -4
- package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.js → issueOrderNumberIfNotExist.js} +21 -13
- package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.d.ts +2 -2
- package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +3 -3
- package/lib/chevre/service/transaction/placeOrder/start.d.ts +3 -3
- package/lib/chevre/service/transaction/placeOrder/start.js +2 -2
- package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +23 -0
- package/lib/chevre/service/transaction/placeOrder/updateAgent.js +126 -0
- package/lib/chevre/service/transaction/placeOrder.d.ts +2 -1
- package/lib/chevre/service/transaction/placeOrder.js +3 -1
- package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +1 -1
- package/lib/chevre/service/transaction/returnOrder.d.ts +16 -14
- package/lib/chevre/service/transaction/returnOrder.js +4 -4
- package/lib/chevre/service/transaction.d.ts +9 -21
- package/lib/chevre/service/transaction.js +5 -111
- package/package.json +4 -8
|
@@ -42,14 +42,14 @@ function voidTransactionByActionId(params) {
|
|
|
42
42
|
agent: { id: params.project.id, typeOf: factory.organizationType.Project },
|
|
43
43
|
...(typeof params.sameAs?.id === 'string') ? { sameAs: { id: params.sameAs.id, typeOf: 'Task' } } : undefined
|
|
44
44
|
};
|
|
45
|
-
const transaction = await repos.
|
|
45
|
+
const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
|
|
46
46
|
typeOf: factory.transactionType.PlaceOrder,
|
|
47
47
|
id: params.purpose.id
|
|
48
48
|
}, ['typeOf']);
|
|
49
49
|
// if (transaction.agent.id !== params.agent.id) {
|
|
50
50
|
// throw new factory.errors.Forbidden('Transaction not yours');
|
|
51
51
|
// }
|
|
52
|
-
const orderNumber = await repos.
|
|
52
|
+
const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.purpose.id });
|
|
53
53
|
const action = await repos.action.findById({ typeOf: factory.actionType.AuthorizeAction, id: params.id });
|
|
54
54
|
if (action.purpose.typeOf !== transaction.typeOf || action.purpose.id !== transaction.id) {
|
|
55
55
|
throw new factory.errors.Argument('Transaction', 'Action not found in the transaction');
|
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
import type * as COA from '@motionpicture/coa-service';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AcceptCOAOfferActionRepo } from '../../../repo/action/acceptCOAOffer';
|
|
3
|
+
import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOffer';
|
|
3
4
|
import type { EventRepo } from '../../../repo/event';
|
|
4
5
|
import type { OrderNumberRepo } from '../../../repo/orderNumber';
|
|
5
6
|
import type { ProjectRepo } from '../../../repo/project';
|
|
6
|
-
import type {
|
|
7
|
+
import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
|
|
7
8
|
import * as factory from '../../../factory';
|
|
8
9
|
interface IAcceptRepos {
|
|
9
|
-
action:
|
|
10
|
+
action: AcceptCOAOfferActionRepo;
|
|
10
11
|
event: EventRepo;
|
|
11
12
|
orderNumber: OrderNumberRepo;
|
|
12
13
|
project: ProjectRepo;
|
|
13
|
-
|
|
14
|
+
placeOrder: PlaceOrderRepo;
|
|
15
|
+
reserveService: COA.service.Reserve;
|
|
16
|
+
masterService: COA.service.Master;
|
|
17
|
+
}
|
|
18
|
+
interface IReAcceptRepos {
|
|
19
|
+
action: AcceptCOAOfferActionRepo;
|
|
20
|
+
authorizeOfferAction: AuthorizeOfferActionRepo;
|
|
21
|
+
event: EventRepo;
|
|
22
|
+
orderNumber: OrderNumberRepo;
|
|
23
|
+
project: ProjectRepo;
|
|
24
|
+
placeOrder: PlaceOrderRepo;
|
|
14
25
|
reserveService: COA.service.Reserve;
|
|
15
26
|
masterService: COA.service.Master;
|
|
16
27
|
}
|
|
@@ -34,5 +45,5 @@ declare function reAcceptOffer(params: IAccepteOfferParams & {
|
|
|
34
45
|
*/
|
|
35
46
|
id: string;
|
|
36
47
|
};
|
|
37
|
-
}): (repos:
|
|
48
|
+
}): (repos: IReAcceptRepos) => Promise<void>;
|
|
38
49
|
export { acceptOffer, reAcceptOffer };
|
|
@@ -27,7 +27,7 @@ exports.acceptOffer = acceptOffer;
|
|
|
27
27
|
exports.reAcceptOffer = reAcceptOffer;
|
|
28
28
|
const errorHandler_1 = require("../../../errorHandler");
|
|
29
29
|
const factory = __importStar(require("../../../factory"));
|
|
30
|
-
const
|
|
30
|
+
const issueOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/issueOrderNumberIfNotExist");
|
|
31
31
|
const authorize_1 = require("./acceptOffer/authorize");
|
|
32
32
|
const factory_1 = require("./acceptOffer/factory");
|
|
33
33
|
function findCOAInfo(params) {
|
|
@@ -58,12 +58,12 @@ function acceptOffer(params) {
|
|
|
58
58
|
if (typeof params.sameAs.id !== 'string' || params.sameAs.id === '') {
|
|
59
59
|
throw new factory.errors.ArgumentNull('sameAs.id');
|
|
60
60
|
}
|
|
61
|
-
const transaction = await repos.
|
|
61
|
+
const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
|
|
62
62
|
typeOf: factory.transactionType.PlaceOrder,
|
|
63
63
|
id: params.purpose.id
|
|
64
64
|
}, ['project', 'agent', 'typeOf']);
|
|
65
|
-
//
|
|
66
|
-
await (0,
|
|
65
|
+
// issueOrderNumber(2025-03-11~)
|
|
66
|
+
await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
|
|
67
67
|
project: { id: transaction.project.id },
|
|
68
68
|
id: transaction.id,
|
|
69
69
|
object: { orderDate: new Date() }
|
|
@@ -144,18 +144,18 @@ function reAcceptOffer(params) {
|
|
|
144
144
|
if (typeof params.potentialActions?.id !== 'string' || params.potentialActions.id === '') {
|
|
145
145
|
throw new factory.errors.ArgumentNull('potentialActions.id');
|
|
146
146
|
}
|
|
147
|
-
const transaction = await repos.
|
|
147
|
+
const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
|
|
148
148
|
typeOf: factory.transactionType.PlaceOrder,
|
|
149
149
|
id: params.purpose.id
|
|
150
150
|
}, ['project', 'agent', 'typeOf']);
|
|
151
|
-
const orderNumber = await repos.
|
|
151
|
+
const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: transaction.id });
|
|
152
152
|
if (typeof orderNumber !== 'string') {
|
|
153
153
|
// 事前に発行されているはず
|
|
154
154
|
throw new factory.errors.NotFound('transaction.object.orderNumber');
|
|
155
155
|
}
|
|
156
156
|
const coaInfo = await findCOAInfo({ id: params.object.event.id, project: { id: transaction.project.id } })(repos);
|
|
157
157
|
// 承認アクション存在検証
|
|
158
|
-
await repos.
|
|
158
|
+
await repos.authorizeOfferAction.findById({ id: params.potentialActions.id, typeOf: factory.actionType.AuthorizeAction }, ['id'], []);
|
|
159
159
|
const actionAttributes = {
|
|
160
160
|
project: transaction.project,
|
|
161
161
|
typeOf: factory.actionType.AcceptAction,
|
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOffer';
|
|
2
|
+
import type { AcceptCOAOfferActionRepo } from '../../../repo/action/acceptCOAOffer';
|
|
2
3
|
import type { CategoryCodeRepo } from '../../../repo/categoryCode';
|
|
3
4
|
import type { EventRepo } from '../../../repo/event';
|
|
4
5
|
import type { OfferRepo } from '../../../repo/offer/unitPriceInCatalog';
|
|
5
6
|
import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
|
|
6
|
-
import type {
|
|
7
|
+
import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
|
|
7
8
|
import { IRequestBody, IResponseBody } from './authorize/factory';
|
|
8
9
|
import { IAcceptedOfferBeforeAuthorize4COA } from './authorize/validateAcceptedOffers';
|
|
9
10
|
import * as factory from '../../../factory';
|
|
10
11
|
export { IRequestBody, IResponseBody };
|
|
11
12
|
export type IAuthorizeActionResult = factory.action.authorize.offer.eventService.IResult;
|
|
12
13
|
export interface IAuthorizeRepos {
|
|
13
|
-
action:
|
|
14
|
+
action: AuthorizeOfferActionRepo;
|
|
15
|
+
accpetCOAOfferAction: AcceptCOAOfferActionRepo;
|
|
14
16
|
categoryCode: CategoryCodeRepo;
|
|
15
17
|
event: EventRepo;
|
|
16
18
|
offer: OfferRepo;
|
|
17
19
|
orderInTransaction: OrderInTransactionRepo;
|
|
18
|
-
|
|
20
|
+
placeOrder: PlaceOrderRepo;
|
|
19
21
|
}
|
|
20
22
|
export type IAuthorizeOperation<T> = (repos: IAuthorizeRepos) => Promise<T>;
|
|
21
23
|
export type IAuthorizeOfferAction = factory.action.authorize.offer.eventService.IAction;
|
|
@@ -28,7 +28,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.authorize = authorize;
|
|
30
30
|
const moment_1 = __importDefault(require("moment"));
|
|
31
|
-
// import { publishOrderNumberIfNotExist } from '../../transaction/placeOrder/publishOrderNumberIfNotExist';
|
|
32
31
|
const any_1 = require("../any");
|
|
33
32
|
const factory_1 = require("./authorize/factory");
|
|
34
33
|
const validateAcceptedOffers_1 = require("./authorize/validateAcceptedOffers");
|
|
@@ -38,7 +37,7 @@ const factory = __importStar(require("../../../factory"));
|
|
|
38
37
|
*/
|
|
39
38
|
function authorize(params) {
|
|
40
39
|
return async (repos) => {
|
|
41
|
-
const transaction = await repos.
|
|
40
|
+
const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
|
|
42
41
|
typeOf: factory.transactionType.PlaceOrder,
|
|
43
42
|
id: params.transaction.id
|
|
44
43
|
}, ['agent', 'project', 'seller', 'typeOf', 'instrument']);
|
|
@@ -104,15 +103,9 @@ function authorize(params) {
|
|
|
104
103
|
await repos.action.giveUp({ typeOf: failedAction.typeOf, id: failedAction.id, error });
|
|
105
104
|
throw error;
|
|
106
105
|
}
|
|
107
|
-
|
|
108
|
-
// const orderNumber = await publishOrderNumberIfNotExist({
|
|
109
|
-
// project: { id: transaction.project.id },
|
|
110
|
-
// id: transaction.id,
|
|
111
|
-
// object: { orderDate: now }
|
|
112
|
-
// })(repos);
|
|
113
|
-
const orderNumber = await repos.transaction.findInProgressOrderNumberById({ id: params.transaction.id });
|
|
106
|
+
const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.transaction.id });
|
|
114
107
|
if (typeof orderNumber !== 'string') {
|
|
115
|
-
// 事前に発行されているはず
|
|
108
|
+
// 事前に発行されているはず(acceptCOAOfferにて)
|
|
116
109
|
throw new factory.errors.NotFound('transaction.object.orderNumber');
|
|
117
110
|
}
|
|
118
111
|
let result;
|
|
@@ -32,18 +32,26 @@ const factory = __importStar(require("../../../factory"));
|
|
|
32
32
|
*/
|
|
33
33
|
function authorizeByAcceptAction(params) {
|
|
34
34
|
return async (repos) => {
|
|
35
|
-
const acceptAction = (await repos.action.search(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
// const acceptAction = (<IAcceptAction[]>await repos.action.search(
|
|
36
|
+
// {
|
|
37
|
+
// limit: 1,
|
|
38
|
+
// page: 1,
|
|
39
|
+
// project: { id: { $eq: params.project.id } },
|
|
40
|
+
// id: { $in: [params.object.id] },
|
|
41
|
+
// typeOf: { $eq: factory.actionType.AcceptAction },
|
|
42
|
+
// purpose: { id: { $in: [params.purpose.id] } },
|
|
43
|
+
// actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] }
|
|
44
|
+
// },
|
|
45
|
+
// ['result', 'object', 'potentialActions']
|
|
46
|
+
// )).shift();
|
|
47
|
+
// if (acceptAction === undefined) {
|
|
48
|
+
// throw new factory.errors.NotFound(factory.actionType.AcceptAction);
|
|
49
|
+
// }
|
|
50
|
+
const acceptAction = await repos.accpetCOAOfferAction.findCompletedById({
|
|
51
|
+
project: { id: params.project.id },
|
|
52
|
+
id: params.object.id,
|
|
53
|
+
purpose: { id: params.purpose.id },
|
|
54
|
+
}, ['result', 'object', 'potentialActions']);
|
|
47
55
|
const acceptResult = acceptAction.result;
|
|
48
56
|
if (acceptResult === undefined) {
|
|
49
57
|
throw new factory.errors.NotFound(`${factory.actionType.AcceptAction}.result`);
|
|
@@ -67,7 +75,7 @@ function authorizeByAcceptAction(params) {
|
|
|
67
75
|
}
|
|
68
76
|
else {
|
|
69
77
|
// recipe依存へ変更(2024-06-11~)
|
|
70
|
-
const recipe = await repos.
|
|
78
|
+
const recipe = await repos.accpetCOAOfferAction.findRecipeByAction({
|
|
71
79
|
project: { id: params.project.id },
|
|
72
80
|
recipeFor: { id: params.object.id }
|
|
73
81
|
});
|
|
@@ -32,19 +32,20 @@ const any_1 = require("../any");
|
|
|
32
32
|
const factory_1 = require("./authorize/factory");
|
|
33
33
|
const validateAcceptedOffers_1 = require("./authorize/validateAcceptedOffers");
|
|
34
34
|
const factory = __importStar(require("../../../factory"));
|
|
35
|
+
// type IAcceptAction = Pick<factory.action.accept.coaOffer.IAction, 'result'>;
|
|
35
36
|
/**
|
|
36
37
|
* COA興行オファー承認のオファーを変更
|
|
37
38
|
*/
|
|
38
39
|
function changeOffers(params) {
|
|
39
40
|
return async (repos) => {
|
|
40
|
-
const transaction = await repos.
|
|
41
|
+
const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
|
|
41
42
|
typeOf: factory.transactionType.PlaceOrder,
|
|
42
43
|
id: params.transaction.id
|
|
43
44
|
}, ['typeOf', 'agent', 'project', 'seller']);
|
|
44
45
|
if (transaction.agent.id !== params.agent.id) {
|
|
45
46
|
throw new factory.errors.Forbidden('Transaction not yours');
|
|
46
47
|
}
|
|
47
|
-
const orderNumber = await repos.
|
|
48
|
+
const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.transaction.id });
|
|
48
49
|
if (typeof orderNumber !== 'string') {
|
|
49
50
|
// 事前に発行されているはず
|
|
50
51
|
throw new factory.errors.NotFound('transaction.object.orderNumber');
|
|
@@ -61,13 +62,21 @@ function changeOffers(params) {
|
|
|
61
62
|
if (typeof originalAcceptActionId !== 'string' || originalAcceptActionId === '') {
|
|
62
63
|
throw new factory.errors.NotFound('authorizeAction.object.id');
|
|
63
64
|
}
|
|
64
|
-
const originalAcceptResult = (await repos.action.search(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
// const originalAcceptResult = (<IAcceptAction[]>await repos.action.search(
|
|
66
|
+
// {
|
|
67
|
+
// limit: 1,
|
|
68
|
+
// page: 1,
|
|
69
|
+
// project: { id: { $eq: authorizeAction.project.id } },
|
|
70
|
+
// id: { $in: [originalAcceptActionId] },
|
|
71
|
+
// typeOf: { $eq: factory.actionType.AcceptAction }
|
|
72
|
+
// },
|
|
73
|
+
// ['result']
|
|
74
|
+
// )).shift()?.result;
|
|
75
|
+
const originalAcceptResult = (await repos.accpetCOAOfferAction.findCompletedById({
|
|
76
|
+
project: { id: authorizeAction.project.id },
|
|
77
|
+
id: originalAcceptActionId,
|
|
78
|
+
purpose: { id: authorizeAction.purpose.id },
|
|
79
|
+
}, ['result'])).result;
|
|
71
80
|
if (originalAcceptResult === undefined) {
|
|
72
81
|
throw new factory.errors.NotFound(`${factory.actionType.AcceptAction}.result`);
|
|
73
82
|
}
|
|
@@ -126,7 +135,7 @@ function changeOffers(params) {
|
|
|
126
135
|
// authorizeAction.object.acceptedOffer = acceptedOffers; // discontinue acceptedOffers(2024-06-21~)
|
|
127
136
|
// recipe依存へ変更(2024-06-11~)
|
|
128
137
|
// const updTmpReserveSeatResult = authorizeAction.result?.responseBody;
|
|
129
|
-
const recipe = await repos.
|
|
138
|
+
const recipe = await repos.accpetCOAOfferAction.findRecipeByAction({
|
|
130
139
|
project: { id: transaction.project.id },
|
|
131
140
|
recipeFor: { id: originalAcceptActionId }
|
|
132
141
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as factory from '../../../factory';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AcceptCOAOfferActionRepo } from '../../../repo/action/acceptCOAOffer';
|
|
3
3
|
import type { TaskRepo } from '../../../repo/task';
|
|
4
4
|
interface IFindAcceptActionResult {
|
|
5
5
|
/**
|
|
@@ -35,7 +35,7 @@ declare function findAcceptAction(params: {
|
|
|
35
35
|
id: string;
|
|
36
36
|
};
|
|
37
37
|
}): (repos: {
|
|
38
|
-
action:
|
|
38
|
+
action: AcceptCOAOfferActionRepo;
|
|
39
39
|
task: TaskRepo;
|
|
40
40
|
}) => Promise<IFindAcceptActionResult>;
|
|
41
41
|
export { findAcceptAction };
|
|
@@ -5,7 +5,7 @@ import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
|
|
|
5
5
|
import type { OrderNumberRepo } from '../../../repo/orderNumber';
|
|
6
6
|
import type { ProductRepo } from '../../../repo/product';
|
|
7
7
|
import type { ProjectRepo } from '../../../repo/project';
|
|
8
|
-
import type {
|
|
8
|
+
import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
|
|
9
9
|
import type { TransactionNumberRepo } from '../../../repo/transactionNumber';
|
|
10
10
|
interface IAuthorizeRepos {
|
|
11
11
|
action: ActionRepo;
|
|
@@ -14,7 +14,7 @@ interface IAuthorizeRepos {
|
|
|
14
14
|
assetTransaction: AssetTransactionRepo;
|
|
15
15
|
orderInTransaction: OrderInTransactionRepo;
|
|
16
16
|
orderNumber: OrderNumberRepo;
|
|
17
|
-
|
|
17
|
+
placeOrder: PlaceOrderRepo;
|
|
18
18
|
transactionNumber: TransactionNumberRepo;
|
|
19
19
|
}
|
|
20
20
|
type IAuthorizeOperation<T> = (repos: IAuthorizeRepos) => Promise<T>;
|
|
@@ -30,11 +30,14 @@ exports.authorize = authorize;
|
|
|
30
30
|
const moment_1 = __importDefault(require("moment"));
|
|
31
31
|
const factory = __importStar(require("../../../factory"));
|
|
32
32
|
const MoneyTransferAssetTransactionService = __importStar(require("../../assetTransaction/moneyTransfer"));
|
|
33
|
-
const
|
|
33
|
+
const issueOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/issueOrderNumberIfNotExist");
|
|
34
34
|
const any_1 = require("../any");
|
|
35
35
|
function authorize(params) {
|
|
36
36
|
return async (repos) => {
|
|
37
|
-
|
|
37
|
+
if (params.purpose.typeOf !== factory.transactionType.PlaceOrder) {
|
|
38
|
+
throw new factory.errors.NotImplemented(`purpose.typeOf: ${params.purpose.typeOf} not implemented`);
|
|
39
|
+
}
|
|
40
|
+
const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
|
|
38
41
|
typeOf: params.purpose.typeOf,
|
|
39
42
|
id: params.purpose.id
|
|
40
43
|
}, ['seller', 'project', 'agent', 'typeOf']);
|
|
@@ -42,7 +45,7 @@ function authorize(params) {
|
|
|
42
45
|
throw new factory.errors.Forbidden('Transaction not yours');
|
|
43
46
|
}
|
|
44
47
|
const now = new Date();
|
|
45
|
-
const orderNumber = await (0,
|
|
48
|
+
const orderNumber = await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
|
|
46
49
|
project: { id: params.project.id },
|
|
47
50
|
id: transaction.id,
|
|
48
51
|
object: { orderDate: now }
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as factory from '../../../factory';
|
|
2
2
|
import type { ActionRepo } from '../../../repo/action';
|
|
3
3
|
import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
|
|
4
|
-
import type {
|
|
4
|
+
import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
|
|
5
5
|
export declare function voidTransaction(params: factory.task.IData<factory.taskName.VoidMoneyTransferTransaction>): (repos: {
|
|
6
6
|
action: ActionRepo;
|
|
7
7
|
assetTransaction: AssetTransactionRepo;
|
|
8
|
-
|
|
8
|
+
placeOrder: PlaceOrderRepo;
|
|
9
9
|
}) => Promise<void>;
|
|
@@ -28,9 +28,12 @@ const factory = __importStar(require("../../../factory"));
|
|
|
28
28
|
const MoneyTransferAssetTransactionService = __importStar(require("../../assetTransaction/moneyTransfer"));
|
|
29
29
|
function voidTransaction(params) {
|
|
30
30
|
return async (repos) => {
|
|
31
|
+
if (params.purpose.typeOf !== factory.transactionType.PlaceOrder) {
|
|
32
|
+
throw new factory.errors.NotImplemented(`purpose.typeOf: ${params.purpose.typeOf} not implemented`);
|
|
33
|
+
}
|
|
31
34
|
let transaction;
|
|
32
35
|
if (params.agent !== undefined && params.agent !== null && typeof params.agent.id === 'string') {
|
|
33
|
-
transaction = await repos.
|
|
36
|
+
transaction = await repos.placeOrder.findPlaceOrderInProgressById({
|
|
34
37
|
typeOf: params.purpose.typeOf,
|
|
35
38
|
id: params.purpose.id
|
|
36
39
|
}, ['typeOf']);
|
|
@@ -11,7 +11,7 @@ import type { ProductRepo } from '../../repo/product';
|
|
|
11
11
|
import type { ProjectRepo } from '../../repo/project';
|
|
12
12
|
import type { ServiceOutputRepo } from '../../repo/serviceOutput';
|
|
13
13
|
import type { ServiceOutputIdentifierRepo } from '../../repo/serviceOutputIdentifier';
|
|
14
|
-
import type {
|
|
14
|
+
import type { PlaceOrderRepo } from '../../repo/transaction/placeOrder';
|
|
15
15
|
import type { TransactionNumberRepo } from '../../repo/transactionNumber';
|
|
16
16
|
export interface IAuthorizeOperationRepos {
|
|
17
17
|
account: AccountRepo;
|
|
@@ -26,7 +26,7 @@ export interface IAuthorizeOperationRepos {
|
|
|
26
26
|
project: ProjectRepo;
|
|
27
27
|
serviceOutput: ServiceOutputRepo;
|
|
28
28
|
serviceOutputIdentifier: ServiceOutputIdentifierRepo;
|
|
29
|
-
|
|
29
|
+
placeOrder: PlaceOrderRepo;
|
|
30
30
|
transactionNumber: TransactionNumberRepo;
|
|
31
31
|
}
|
|
32
32
|
export type IAuthorizeOperation<T> = (repos: IAuthorizeOperationRepos) => Promise<T>;
|
|
@@ -96,5 +96,5 @@ export declare function authorize(params: {
|
|
|
96
96
|
export declare function voidTransaction(params: factory.task.IData<factory.taskName.VoidRegisterServiceTransaction>): (repos: {
|
|
97
97
|
action: ActionRepo;
|
|
98
98
|
assetTransaction: AssetTransactionRepo;
|
|
99
|
-
|
|
99
|
+
placeOrder: PlaceOrderRepo;
|
|
100
100
|
}) => Promise<void>;
|
|
@@ -31,7 +31,7 @@ const factory = __importStar(require("../../factory"));
|
|
|
31
31
|
const accountTransactionIdentifier_1 = require("../../factory/accountTransactionIdentifier");
|
|
32
32
|
const availableProductTypes_1 = require("../../factory/availableProductTypes");
|
|
33
33
|
const RegisterServiceTransaction = __importStar(require("../assetTransaction/registerService"));
|
|
34
|
-
const
|
|
34
|
+
const issueOrderNumberIfNotExist_1 = require("../transaction/placeOrder/issueOrderNumberIfNotExist");
|
|
35
35
|
const any_1 = require("./any");
|
|
36
36
|
const factory_1 = require("./product/factory");
|
|
37
37
|
const searchProductOffers_1 = require("./product/searchProductOffers");
|
|
@@ -99,7 +99,7 @@ function search(params) {
|
|
|
99
99
|
function authorize(params) {
|
|
100
100
|
return async (repos) => {
|
|
101
101
|
const now = new Date();
|
|
102
|
-
const transaction = await repos.
|
|
102
|
+
const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
|
|
103
103
|
typeOf: factory.transactionType.PlaceOrder,
|
|
104
104
|
id: params.transaction.id
|
|
105
105
|
}, ['agent', 'project', 'seller', 'typeOf', 'expires']);
|
|
@@ -117,7 +117,7 @@ function authorize(params) {
|
|
|
117
117
|
})(repos);
|
|
118
118
|
}
|
|
119
119
|
// ポイント特典の識別子に利用するため注文番号を先に発行
|
|
120
|
-
const orderNumber = await (0,
|
|
120
|
+
const orderNumber = await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
|
|
121
121
|
project: { id: transaction.project.id },
|
|
122
122
|
id: transaction.id,
|
|
123
123
|
object: { orderDate: new Date() }
|
|
@@ -214,7 +214,7 @@ function fixProductAndOffers(params) {
|
|
|
214
214
|
}
|
|
215
215
|
function voidTransaction(params) {
|
|
216
216
|
return async (repos) => {
|
|
217
|
-
const transaction = await repos.
|
|
217
|
+
const transaction = await repos.placeOrder.findPlaceOrderById({
|
|
218
218
|
typeOf: params.purpose.typeOf,
|
|
219
219
|
id: params.purpose.id
|
|
220
220
|
}, ['agent', 'status', 'typeOf']);
|
|
@@ -7,7 +7,6 @@ import type { EventRepo } from '../../repo/event';
|
|
|
7
7
|
import type { OrderRepo } from '../../repo/order';
|
|
8
8
|
import type { ProjectRepo } from '../../repo/project';
|
|
9
9
|
import type { TaskRepo } from '../../repo/task';
|
|
10
|
-
import type { TransactionRepo } from '../../repo/transaction';
|
|
11
10
|
declare function confirmPayTransaction(data: factory.task.IData<factory.taskName.ConfirmPayTransaction> & {
|
|
12
11
|
project: {
|
|
13
12
|
id: string;
|
|
@@ -22,6 +21,5 @@ declare function confirmPayTransaction(data: factory.task.IData<factory.taskName
|
|
|
22
21
|
event: EventRepo;
|
|
23
22
|
project: ProjectRepo;
|
|
24
23
|
task: TaskRepo;
|
|
25
|
-
transaction: TransactionRepo;
|
|
26
24
|
}) => Promise<void>;
|
|
27
25
|
export { confirmPayTransaction };
|
|
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.confirmPayTransaction = confirmPayTransaction;
|
|
27
27
|
const factory = __importStar(require("../../factory"));
|
|
28
|
+
// import type { TransactionRepo } from '../../repo/transaction';
|
|
28
29
|
const PayTransactionService = __importStar(require("../assetTransaction/pay"));
|
|
29
30
|
function confirmPayTransaction(data, options) {
|
|
30
31
|
return async (repos) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PlaceOrderRepo } from '../../repo/transaction/placeOrder';
|
|
2
2
|
import * as factory from '../../factory';
|
|
3
3
|
type ITransaction = Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'potentialActions' | 'project' | 'typeOf'>;
|
|
4
4
|
export declare function findPlaceOrderTransaction(params: {
|
|
@@ -8,6 +8,6 @@ export declare function findPlaceOrderTransaction(params: {
|
|
|
8
8
|
confirmationNumber: string;
|
|
9
9
|
orderNumber: string;
|
|
10
10
|
}): (repos: {
|
|
11
|
-
|
|
11
|
+
placeOrder: PlaceOrderRepo;
|
|
12
12
|
}) => Promise<ITransaction>;
|
|
13
13
|
export {};
|
|
@@ -27,7 +27,7 @@ exports.findPlaceOrderTransaction = findPlaceOrderTransaction;
|
|
|
27
27
|
const factory = __importStar(require("../../factory"));
|
|
28
28
|
function findPlaceOrderTransaction(params) {
|
|
29
29
|
return async (repos) => {
|
|
30
|
-
const placeOrderTransactions = await repos.
|
|
30
|
+
const placeOrderTransactions = await repos.placeOrder.findPlaceOrderTransactions({
|
|
31
31
|
limit: 1,
|
|
32
32
|
page: 1,
|
|
33
33
|
project: { id: { $eq: params.project.id } },
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AcceptedOfferRepo } from '../../../repo/acceptedOffer';
|
|
2
|
+
import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
|
|
3
|
+
import type { OrderRepo } from '../../../repo/order';
|
|
4
|
+
import * as factory from '../../../factory';
|
|
5
|
+
declare function isDeliverable(params: {
|
|
6
|
+
project: {
|
|
7
|
+
id: string;
|
|
8
|
+
};
|
|
9
|
+
orderNumber: string;
|
|
10
|
+
assetTransactionType: factory.assetTransactionType.Reserve | factory.assetTransactionType.MoneyTransfer | factory.assetTransactionType.RegisterService;
|
|
11
|
+
}): (repos: {
|
|
12
|
+
acceptedOffer: AcceptedOfferRepo;
|
|
13
|
+
assetTransaction: AssetTransactionRepo;
|
|
14
|
+
order: OrderRepo;
|
|
15
|
+
}) => Promise<boolean>;
|
|
16
|
+
export { isDeliverable };
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.isDeliverable = isDeliverable;
|
|
30
|
+
const debug_1 = __importDefault(require("debug"));
|
|
31
|
+
const factory = __importStar(require("../../../factory"));
|
|
32
|
+
const debug = (0, debug_1.default)('chevre-domain:service:order');
|
|
33
|
+
function isDeliverable(params) {
|
|
34
|
+
return async (repos) => {
|
|
35
|
+
let allReserveTransactionConfirmed = false;
|
|
36
|
+
let allMoneyTransferTransactionConfirmed = false;
|
|
37
|
+
let allRegisterServiceTransactionConfirmed = false;
|
|
38
|
+
if (params.assetTransactionType === factory.assetTransactionType.Reserve) {
|
|
39
|
+
allMoneyTransferTransactionConfirmed = true;
|
|
40
|
+
allRegisterServiceTransactionConfirmed = true;
|
|
41
|
+
// 注文のreservationNumberを取得
|
|
42
|
+
const reservationNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.itemOffered.reservationNumber');
|
|
43
|
+
if (reservationNumbers.length > 0) {
|
|
44
|
+
const referencedReserveTransactions = await repos.assetTransaction.search({
|
|
45
|
+
project: { id: { $eq: params.project.id } },
|
|
46
|
+
typeOf: factory.assetTransactionType.Reserve,
|
|
47
|
+
transactionNumber: { $in: reservationNumbers }
|
|
48
|
+
}, ['status']);
|
|
49
|
+
allReserveTransactionConfirmed =
|
|
50
|
+
referencedReserveTransactions.length === reservationNumbers.length
|
|
51
|
+
&& referencedReserveTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
allReserveTransactionConfirmed = true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (params.assetTransactionType === factory.assetTransactionType.MoneyTransfer) {
|
|
58
|
+
allReserveTransactionConfirmed = true;
|
|
59
|
+
allRegisterServiceTransactionConfirmed = true;
|
|
60
|
+
// 注文のMoneyTransferTransaction.transactionNumberを取得
|
|
61
|
+
const moneyTransferTransactionNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.serialNumber');
|
|
62
|
+
if (moneyTransferTransactionNumbers.length > 0) {
|
|
63
|
+
debug('is deliverable?...', params.orderNumber, 'moneyTransferTransactionNumbers:', moneyTransferTransactionNumbers);
|
|
64
|
+
const referencedMoneyTransferTransactions = await repos.assetTransaction.search({
|
|
65
|
+
project: { id: { $eq: params.project.id } },
|
|
66
|
+
typeOf: factory.assetTransactionType.MoneyTransfer,
|
|
67
|
+
transactionNumber: { $in: moneyTransferTransactionNumbers }
|
|
68
|
+
}, ['status']);
|
|
69
|
+
allMoneyTransferTransactionConfirmed =
|
|
70
|
+
referencedMoneyTransferTransactions.length === moneyTransferTransactionNumbers.length
|
|
71
|
+
&& referencedMoneyTransferTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
allMoneyTransferTransactionConfirmed = true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else if (params.assetTransactionType === factory.assetTransactionType.RegisterService) {
|
|
78
|
+
allReserveTransactionConfirmed = true;
|
|
79
|
+
allMoneyTransferTransactionConfirmed = true;
|
|
80
|
+
const registerServiceTransactionNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.serialNumber');
|
|
81
|
+
if (registerServiceTransactionNumbers.length > 0) {
|
|
82
|
+
const referencedRegisterServiceTransactions = await repos.assetTransaction.search({
|
|
83
|
+
project: { id: { $eq: params.project.id } },
|
|
84
|
+
typeOf: factory.assetTransactionType.RegisterService,
|
|
85
|
+
transactionNumber: { $in: registerServiceTransactionNumbers }
|
|
86
|
+
}, ['status']);
|
|
87
|
+
allRegisterServiceTransactionConfirmed =
|
|
88
|
+
referencedRegisterServiceTransactions.length === registerServiceTransactionNumbers.length
|
|
89
|
+
&& referencedRegisterServiceTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
allRegisterServiceTransactionConfirmed = true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return allReserveTransactionConfirmed && allMoneyTransferTransactionConfirmed && allRegisterServiceTransactionConfirmed;
|
|
96
|
+
};
|
|
97
|
+
}
|
package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AcceptedOfferRepo } from '../../../repo/acceptedOffer';
|
|
2
|
+
import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
|
|
3
|
+
import type { OrderRepo } from '../../../repo/order';
|
|
4
|
+
import type { SettingRepo } from '../../../repo/setting';
|
|
5
|
+
import type { TaskRepo } from '../../../repo/task';
|
|
6
|
+
import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
|
|
7
|
+
import * as factory from '../../../factory';
|
|
8
|
+
interface IOnPayTransactionCanceledRepos {
|
|
9
|
+
acceptedOffer: AcceptedOfferRepo;
|
|
10
|
+
assetTransaction: AssetTransactionRepo;
|
|
11
|
+
order: OrderRepo;
|
|
12
|
+
setting: SettingRepo;
|
|
13
|
+
task: TaskRepo;
|
|
14
|
+
placeOrder: PlaceOrderRepo;
|
|
15
|
+
}
|
|
16
|
+
declare function onPayTransactionCanceled(params: factory.task.onAssetTransactionStatusChanged.IData & {
|
|
17
|
+
object: factory.task.onAssetTransactionStatusChanged.IObjectAsPayTransaction & {
|
|
18
|
+
status: factory.transactionStatusType.Canceled | factory.transactionStatusType.Expired;
|
|
19
|
+
};
|
|
20
|
+
}): (repos: IOnPayTransactionCanceledRepos) => Promise<void>;
|
|
21
|
+
export { IOnPayTransactionCanceledRepos, onPayTransactionCanceled, };
|