@chevre/domain
Version:
Chevre Domain Library for Node.js
97 lines (96 loc) • 4.55 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createInformTasks = createInformTasks;
exports.createNextSendOrderTasks = createNextSendOrderTasks;
const factory = require("../../../../factory");
function creteOrder4inform(order) {
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);
}
function createInformTasks(params,
// settings: Settings,
setting) {
var _a;
const { order } = params;
const taskRunsAt = new Date();
// const informOrder = settings.onOrderStatusChanged?.informOrder;
const informOrder = (_a = setting === null || setting === void 0 ? void 0 : setting.onOrderStatusChanged) === null || _a === void 0 ? void 0 : _a.informOrder;
const informTasks = [];
const order4inform = creteOrder4inform(order);
const informIdentifier = `${factory.order.OrderType.Order}:${order4inform.orderNumber}:${order4inform.orderStatus}:${order.acceptedOffers.page}`;
if (Array.isArray(informOrder) && informOrder.length > 0) {
let recipientId = '';
recipientId = order.customer.id;
informOrder.forEach((informOrderParams) => {
var _a, _b;
if (typeof ((_a = informOrderParams.recipient) === null || _a === void 0 ? void 0 : _a.url) === 'string') {
const informActionAttributes = {
about: { orderNumber: order.orderNumber, typeOf: factory.order.OrderType.Order },
object: order4inform,
recipient: {
// url: informOrderParams.recipient.url, // discontinue(2025-02-13~)
id: recipientId,
name: (_b = informOrderParams.recipient) === null || _b === void 0 ? void 0 : _b.name,
typeOf: factory.creativeWorkType.WebApplication
},
target: {
httpMethod: 'POST',
encodingType: factory.encodingFormat.Application.json,
typeOf: 'EntryPoint',
urlTemplate: informOrderParams.recipient.url
},
identifier: informIdentifier // add(2024-10-24~)
};
informTasks.push({
project: order.project,
name: factory.taskName.TriggerWebhook,
status: factory.taskStatus.Ready,
runsAt: taskRunsAt,
remainingNumberOfTries: 10,
numberOfTried: 0,
executionResults: [],
data: informActionAttributes
});
}
});
}
return informTasks;
}
function createNextSendOrderTasks(params) {
const now = new Date();
const taskAttributes = [];
// const maskedCustomer = createMaskedCustomer({ customer: params.order.customer }, { noProfile: true });
const simpleOrder = {
typeOf: params.order.typeOf,
// seller: {
// id: params.order.seller.id,
// typeOf: params.order.seller.typeOf,
// name: params.order.seller.name
// }, // 廃止(2024-03-06~)
// mask
// customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id }, // 廃止(2024-03-06~)
orderNumber: params.order.orderNumber,
// price: params.order.price,
// priceCurrency: params.order.priceCurrency,
orderDate: params.order.orderDate
};
const sendOrderObject = Object.assign(Object.assign({}, simpleOrder), { acceptedOffers: {
limit: params.order.acceptedOffers.limit,
page: params.order.acceptedOffers.page + 1
} });
const sendOrderTaskData = {
project: params.order.project,
object: Object.assign(Object.assign({}, sendOrderObject), { confirmationNumber: params.order.confirmationNumber, previousOrderStatus: params.order.orderStatus })
};
const sendOrderTask = {
project: params.order.project,
name: factory.taskName.SendOrder,
status: factory.taskStatus.Ready,
runsAt: now, // なるはやで実行
remainingNumberOfTries: 10,
numberOfTried: 0,
executionResults: [],
data: sendOrderTaskData
};
taskAttributes.push(sendOrderTask);
return taskAttributes;
}
;