UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

57 lines (56 loc) 2.79 kB
"use strict"; 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); }