@chevre/domain 21.20.0-alpha.23 → 21.20.0-alpha.25
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/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +13 -8
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +47 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +2 -8
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +4 -3
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +1 -1
- package/lib/chevre/service/order/sendOrder.js +7 -11
- package/lib/chevre/settings.d.ts +1 -0
- package/lib/chevre/settings.js +2 -1
- package/package.json +1 -1
package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import * as factory from '../../../../factory';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
page: number;
|
|
7
|
-
};
|
|
8
|
-
orderStatus: factory.orderStatus.OrderProcessing | factory.orderStatus.OrderInTransit;
|
|
2
|
+
type IInTransitOrder = Pick<factory.order.IOrder, 'confirmationNumber' | 'project' | 'typeOf' | 'seller' | 'orderNumber' | 'price' | 'priceCurrency' | 'orderDate' | 'customer' | 'id'> & {
|
|
3
|
+
acceptedOffers: {
|
|
4
|
+
limit: number;
|
|
5
|
+
page: number;
|
|
9
6
|
};
|
|
7
|
+
deliveredAcceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
|
|
8
|
+
orderStatus: factory.orderStatus.OrderProcessing | factory.orderStatus.OrderInTransit;
|
|
9
|
+
};
|
|
10
|
+
declare function createInformTasks(params: {
|
|
11
|
+
order: IInTransitOrder;
|
|
12
|
+
}): factory.task.IAttributes<factory.taskName.TriggerWebhook>[];
|
|
13
|
+
declare function createNextSendOrderTasks(params: {
|
|
14
|
+
order: IInTransitOrder;
|
|
10
15
|
}): (import("@chevre/factory/lib/task").IAttributes | import("@chevre/factory/lib/task/confirmMoneyTransfer").IAttributes | import("@chevre/factory/lib/task/confirmRegisterService").IAttributes | import("@chevre/factory/lib/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").IAttributes | import("@chevre/factory/lib/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/task/createEvent").IAttributes | import("@chevre/factory/lib/task/deleteTransaction").IAttributes | import("@chevre/factory/lib/task/givePointAward").IAttributes | import("@chevre/factory/lib/task/onAssetTransactionStatusChanged").IAttributes | import("@chevre/factory/lib/task/onAuthorizationCreated").IAttributes | import("@chevre/factory/lib/task/onEventChanged").IAttributes | import("@chevre/factory/lib/task/onResourceUpdated").IAttributes | import("@chevre/factory/lib/task/onOrderPaymentCompleted").IAttributes | import("@chevre/factory/lib/task/placeOrder").IAttributes | import("@chevre/factory/lib/task/returnOrder").IAttributes | import("@chevre/factory/lib/task/returnMoneyTransfer").IAttributes | import("@chevre/factory/lib/task/returnPayTransaction").IAttributes | import("@chevre/factory/lib/task/returnPointAward").IAttributes | import("@chevre/factory/lib/task/returnReserveTransaction").IAttributes | import("@chevre/factory/lib/task/sendEmailMessage").IAttributes | import("@chevre/factory/lib/task/sendOrder").IAttributes | import("@chevre/factory/lib/task/syncScreeningRooms").IAttributes | import("@chevre/factory/lib/task/triggerWebhook").IAttributes | import("@chevre/factory/lib/task/useReservation").IAttributes | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").IAttributes | import("@chevre/factory/lib/task/voidPayTransaction").IAttributes | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").IAttributes | import("@chevre/factory/lib/task/voidReserveTransaction").IAttributes)[];
|
|
11
|
-
export { createNextSendOrderTasks };
|
|
16
|
+
export { createInformTasks, createNextSendOrderTasks, IInTransitOrder };
|
|
@@ -1,8 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createNextSendOrderTasks = void 0;
|
|
4
|
+
exports.createNextSendOrderTasks = exports.createInformTasks = void 0;
|
|
4
5
|
const factory = require("../../../../factory");
|
|
5
6
|
const order_1 = require("../../../../factory/order");
|
|
7
|
+
const settings_1 = require("../../../../settings");
|
|
8
|
+
const informOrder = (_a = settings_1.settings.onOrderStatusChanged) === null || _a === void 0 ? void 0 : _a.informOrder;
|
|
9
|
+
function creteOrder4inform(order) {
|
|
10
|
+
return Object.assign({ project: order.project, typeOf: order.typeOf, orderNumber: order.orderNumber, acceptedOffers: order.deliveredAcceptedOffers, orderStatus: factory.orderStatus.OrderInTransit }, (typeof order.id === 'string') ? { id: order.id } : undefined);
|
|
11
|
+
}
|
|
12
|
+
function createInformTasks(params) {
|
|
13
|
+
if (!settings_1.USE_INFORM_ORDER_IN_TRANSIT) {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
const { order } = params;
|
|
17
|
+
const taskRunsAt = new Date();
|
|
18
|
+
let informTasks = [];
|
|
19
|
+
if (Array.isArray(informOrder) && informOrder.length > 0) {
|
|
20
|
+
const order4inform = creteOrder4inform(order);
|
|
21
|
+
let recipientId = '';
|
|
22
|
+
recipientId = order.customer.id;
|
|
23
|
+
informTasks = informOrder.map((informOrderParams) => {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
const informActionAttributes = {
|
|
26
|
+
agent: order.project,
|
|
27
|
+
object: order4inform,
|
|
28
|
+
project: order.project,
|
|
29
|
+
recipient: {
|
|
30
|
+
url: (_a = informOrderParams.recipient) === null || _a === void 0 ? void 0 : _a.url,
|
|
31
|
+
id: recipientId,
|
|
32
|
+
name: (_b = informOrderParams.recipient) === null || _b === void 0 ? void 0 : _b.name,
|
|
33
|
+
typeOf: factory.creativeWorkType.WebApplication
|
|
34
|
+
},
|
|
35
|
+
typeOf: factory.actionType.InformAction
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
project: order.project,
|
|
39
|
+
name: factory.taskName.TriggerWebhook,
|
|
40
|
+
status: factory.taskStatus.Ready,
|
|
41
|
+
runsAt: taskRunsAt,
|
|
42
|
+
remainingNumberOfTries: 10,
|
|
43
|
+
numberOfTried: 0,
|
|
44
|
+
executionResults: [],
|
|
45
|
+
data: informActionAttributes
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return informTasks;
|
|
50
|
+
}
|
|
51
|
+
exports.createInformTasks = createInformTasks;
|
|
6
52
|
function createNextSendOrderTasks(params) {
|
|
7
53
|
const now = new Date();
|
|
8
54
|
const taskAttributes = [];
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import type { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
2
|
-
import
|
|
2
|
+
import { IInTransitOrder } from './onOrderDeliveredPartially/factory';
|
|
3
3
|
declare function onOrderDeliveredPartially(params: {
|
|
4
|
-
order:
|
|
5
|
-
acceptedOffers: {
|
|
6
|
-
limit: number;
|
|
7
|
-
page: number;
|
|
8
|
-
};
|
|
9
|
-
orderStatus: factory.orderStatus.OrderProcessing | factory.orderStatus.OrderInTransit;
|
|
10
|
-
};
|
|
4
|
+
order: IInTransitOrder;
|
|
11
5
|
}): (repos: {
|
|
12
6
|
task: TaskRepo;
|
|
13
7
|
}) => Promise<void>;
|
|
@@ -17,7 +17,6 @@ const createDebug = require("debug");
|
|
|
17
17
|
const factory = require("../../../factory");
|
|
18
18
|
const factory_1 = require("./onOrderDeliveredPartially/factory");
|
|
19
19
|
const debug = createDebug('chevre-domain:service:order');
|
|
20
|
-
// type IPlaceOrderTransaction = Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'project' | 'typeOf' | 'potentialActions'>;
|
|
21
20
|
function onOrderDeliveredPartially(params) {
|
|
22
21
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
23
22
|
debug('onOrderStatusChanged called.', params.order.orderNumber, params.order.orderStatus, params.order.orderDate);
|
|
@@ -25,8 +24,10 @@ function onOrderDeliveredPartially(params) {
|
|
|
25
24
|
switch (params.order.orderStatus) {
|
|
26
25
|
case factory.orderStatus.OrderInTransit:
|
|
27
26
|
case factory.orderStatus.OrderProcessing:
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
tasks = [
|
|
28
|
+
...(0, factory_1.createInformTasks)({ order: params.order }),
|
|
29
|
+
...(0, factory_1.createNextSendOrderTasks)({ order: params.order }) // 次の配送タスクを作成
|
|
30
|
+
];
|
|
30
31
|
break;
|
|
31
32
|
default:
|
|
32
33
|
throw new factory.errors.NotImplemented(`${params.order.orderStatus} not implemented`);
|
|
@@ -50,7 +50,7 @@ function creteOrder4inform(order) {
|
|
|
50
50
|
// 冗長な個人情報をmask
|
|
51
51
|
return Object.assign({
|
|
52
52
|
// whitelistで作成する(2022-07-19~)
|
|
53
|
-
project: order.project, typeOf: order.typeOf, seller: order.seller, price: order.price, priceCurrency: order.priceCurrency, confirmationNumber: order.confirmationNumber, orderNumber: order.orderNumber, acceptedOffers: order.acceptedOffers, orderStatus: order.orderStatus, orderDate: order.orderDate,
|
|
53
|
+
project: order.project, typeOf: order.typeOf, seller: order.seller, price: order.price, priceCurrency: order.priceCurrency, confirmationNumber: order.confirmationNumber, orderNumber: order.orderNumber, acceptedOffers: order.acceptedOffers, numAcceptedOffers: order.acceptedOffers.length, orderStatus: order.orderStatus, orderDate: order.orderDate,
|
|
54
54
|
// mask
|
|
55
55
|
customer: Object.assign(Object.assign({}, (0, order_1.createMaskedCustomer)(order, { noProfile: false })), { additionalProperty: (Array.isArray(order.customer.additionalProperty)) ? order.customer.additionalProperty : [],
|
|
56
56
|
// identifierは必要
|
|
@@ -81,9 +81,7 @@ function sendOrder(params) {
|
|
|
81
81
|
const sendOrderActionAttributes = {
|
|
82
82
|
agent: (typeof ((_c = params.agent) === null || _c === void 0 ? void 0 : _c.typeOf) === 'string') ? params.agent : order.project,
|
|
83
83
|
object: sendOrderObject,
|
|
84
|
-
potentialActions: {
|
|
85
|
-
// sendEmailMessage: undefined
|
|
86
|
-
},
|
|
84
|
+
potentialActions: {},
|
|
87
85
|
project: order.project,
|
|
88
86
|
recipient: { id: order.customer.id, typeOf: order.customer.typeOf },
|
|
89
87
|
typeOf: factory.actionType.SendAction
|
|
@@ -91,16 +89,14 @@ function sendOrder(params) {
|
|
|
91
89
|
const action = yield repos.action.start(sendOrderActionAttributes);
|
|
92
90
|
let ownershipInfos;
|
|
93
91
|
let allOffersDelivered = false;
|
|
92
|
+
let acceptedOffers;
|
|
94
93
|
try {
|
|
95
|
-
|
|
96
|
-
// orderNumber: { $eq: order.orderNumber },
|
|
97
|
-
// project: { id: { $eq: order.project.id } }
|
|
98
|
-
// });
|
|
99
|
-
const { acceptedOffers, numAcceptedOffers } = yield repos.acceptedOffer.searchSlicedAcceptedOffersByOrderNumber({
|
|
94
|
+
const searchSlicedAcceptedOffersResult = yield repos.acceptedOffer.searchSlicedAcceptedOffersByOrderNumber({
|
|
100
95
|
$slice: [limit * (page - 1), limit],
|
|
101
96
|
orderNumber: { $eq: order.orderNumber },
|
|
102
97
|
project: { id: { $eq: order.project.id } }
|
|
103
98
|
});
|
|
99
|
+
acceptedOffers = searchSlicedAcceptedOffersResult.acceptedOffers;
|
|
104
100
|
debug('delivering...', order.orderNumber, acceptedOffers.map((offer) => `${offer.itemOffered.id}`), params.object.acceptedOffers);
|
|
105
101
|
// 所有権作成
|
|
106
102
|
ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({ order: Object.assign(Object.assign({}, order), { acceptedOffers }) });
|
|
@@ -109,7 +105,8 @@ function sendOrder(params) {
|
|
|
109
105
|
})));
|
|
110
106
|
const deliveredCount = limit * page;
|
|
111
107
|
debug(deliveredCount, 'delivered.', order.orderNumber, params.object.acceptedOffers);
|
|
112
|
-
if (deliveredCount >= numAcceptedOffers) {
|
|
108
|
+
// if (deliveredCount >= numAcceptedOffers) {
|
|
109
|
+
if (acceptedOffers.length === 0) {
|
|
113
110
|
order = yield repos.order.changeStatus({
|
|
114
111
|
project: { id: order.project.id },
|
|
115
112
|
orderNumber,
|
|
@@ -150,8 +147,7 @@ function sendOrder(params) {
|
|
|
150
147
|
}
|
|
151
148
|
else {
|
|
152
149
|
yield (0, onOrderStatusChanged_1.onOrderDeliveredPartially)({
|
|
153
|
-
order: Object.assign(Object.assign({}, order), { acceptedOffers: params.object.acceptedOffers, orderStatus: params.object.previousOrderStatus })
|
|
154
|
-
// placeOrderTransaction
|
|
150
|
+
order: Object.assign(Object.assign({}, order), { acceptedOffers: params.object.acceptedOffers, orderStatus: params.object.previousOrderStatus, deliveredAcceptedOffers: acceptedOffers })
|
|
155
151
|
})({
|
|
156
152
|
task: repos.task
|
|
157
153
|
});
|
package/lib/chevre/settings.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export declare const USE_ORDER_PAYMENT_METHOD_TYPE_OF: boolean;
|
|
|
42
42
|
export declare const USE_FETCH_API: boolean;
|
|
43
43
|
export declare const USE_SEND_ORDER_ON_ORDER_PROCESSING: boolean;
|
|
44
44
|
export declare const USE_ORDER_IN_TRANSIT: boolean;
|
|
45
|
+
export declare const USE_INFORM_ORDER_IN_TRANSIT: boolean;
|
|
45
46
|
export declare const MONGO_MAX_TIME_MS: number;
|
|
46
47
|
export declare const MONGO_READ_PREFERENCE: string;
|
|
47
48
|
export declare const MONGO_AUTO_INDEX: boolean;
|
package/lib/chevre/settings.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.settings = exports.DELIVER_ORDER_LIMIT = exports.MONGO_AUTO_INDEX = exports.MONGO_READ_PREFERENCE = exports.MONGO_MAX_TIME_MS = exports.USE_ORDER_IN_TRANSIT = exports.USE_SEND_ORDER_ON_ORDER_PROCESSING = exports.USE_FETCH_API = exports.USE_ORDER_PAYMENT_METHOD_TYPE_OF = exports.USE_OPTIMIZE_TICKET_OFFER = exports.USE_DELETE_EVENT_BY_ORDER = exports.USE_OBJECT_AS_PAY_TRANSACTION_AMOUNT = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_TASKS_EXPORT_AGENT_NAME = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.MAX_NUM_CREDIT_CARD_PAYMENT_METHOD = exports.ABORTED_TASKS_WITHOUT_REPORT = exports.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS = exports.TRIGGER_WEBHOOK_MAX_RETRY_COUNT = void 0;
|
|
3
|
+
exports.settings = exports.DELIVER_ORDER_LIMIT = exports.MONGO_AUTO_INDEX = exports.MONGO_READ_PREFERENCE = exports.MONGO_MAX_TIME_MS = exports.USE_INFORM_ORDER_IN_TRANSIT = exports.USE_ORDER_IN_TRANSIT = exports.USE_SEND_ORDER_ON_ORDER_PROCESSING = exports.USE_FETCH_API = exports.USE_ORDER_PAYMENT_METHOD_TYPE_OF = exports.USE_OPTIMIZE_TICKET_OFFER = exports.USE_DELETE_EVENT_BY_ORDER = exports.USE_OBJECT_AS_PAY_TRANSACTION_AMOUNT = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_TASKS_EXPORT_AGENT_NAME = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.MAX_NUM_CREDIT_CARD_PAYMENT_METHOD = exports.ABORTED_TASKS_WITHOUT_REPORT = exports.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS = exports.TRIGGER_WEBHOOK_MAX_RETRY_COUNT = void 0;
|
|
4
4
|
const factory = require("./factory");
|
|
5
5
|
const transactionWebhookUrls = (typeof process.env.INFORM_TRANSACTION_URL === 'string')
|
|
6
6
|
? process.env.INFORM_TRANSACTION_URL.split(' ')
|
|
@@ -66,6 +66,7 @@ exports.USE_ORDER_PAYMENT_METHOD_TYPE_OF = process.env.USE_ORDER_PAYMENT_METHOD_
|
|
|
66
66
|
exports.USE_FETCH_API = process.env.USE_FETCH_API === '1';
|
|
67
67
|
exports.USE_SEND_ORDER_ON_ORDER_PROCESSING = process.env.USE_SEND_ORDER_ON_ORDER_PROCESSING === '1';
|
|
68
68
|
exports.USE_ORDER_IN_TRANSIT = process.env.USE_ORDER_IN_TRANSIT === '1';
|
|
69
|
+
exports.USE_INFORM_ORDER_IN_TRANSIT = process.env.USE_INFORM_ORDER_IN_TRANSIT === '1';
|
|
69
70
|
exports.MONGO_MAX_TIME_MS = (typeof process.env.MONGO_MAX_TIME_MS === 'string')
|
|
70
71
|
? Number(process.env.MONGO_MAX_TIME_MS)
|
|
71
72
|
// tslint:disable-next-line:no-magic-numbers
|
package/package.json
CHANGED