UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

97 lines (96 loc) 4.55 kB
"use strict"; 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; }