@chevre/domain
Version:
Chevre Domain Library for Node.js
57 lines (56 loc) • 2.79 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createInformTasks = createInformTasks;
const factory = require("../../../../factory");
function createInformTasks(order,
// settings: Settings,
setting) {
var _a;
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}`;
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 creteOrder4inform(order) {
// 配送済注文通知内容を最適化(2022-12-29~)
return Object.assign({ project: order.project, typeOf: order.typeOf, orderNumber: order.orderNumber, orderStatus: order.orderStatus }, (typeof order.id === 'string') ? { id: order.id } : undefined);
}
;