UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

89 lines (88 loc) 4.58 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.exportTasksById = exportTasksById; const factory = require("../../../factory"); /** * 取引タスク出力 */ function exportTasksById(params) { // tslint:disable-next-line:max-func-body-length return (repos) => __awaiter(this, void 0, void 0, function* () { // const { useAssetTransactionSyncProcessing } = settings; const transaction = yield repos.assetTransaction.findById({ typeOf: factory.assetTransactionType.Reserve, id: params.id }, ['status', 'transactionNumber', 'project', 'typeOf'] // projection(2024-07-01~) ); // const potentialActions = transaction.potentialActions; const taskAttributes = []; let cancelPendingReservationTask; switch (transaction.status) { case factory.transactionStatusType.Confirmed: // if (!useAssetTransactionSyncProcessing) { // const reserveTask: factory.task.reserve.IAttributes = { // project: transaction.project, // name: factory.taskName.Reserve, // status: factory.taskStatus.Ready, // runsAt: new Date(), // なるはやで実行 // remainingNumberOfTries: 10, // numberOfTried: 0, // executionResults: [], // data: { object: { reservationNumber: transaction.transactionNumber } } // optimize(2024-07-01~) // }; // taskAttributes.push(reserveTask); // } break; case factory.transactionStatusType.Canceled: // sync対応(2023-01-13~) // if (!useAssetTransactionSyncProcessing) { // cancelPendingReservationTask = { // project: transaction.project, // name: factory.taskName.CancelPendingReservation, // status: factory.taskStatus.Ready, // runsAt: new Date(), // なるはやで実行 // remainingNumberOfTries: 10, // numberOfTried: 0, // executionResults: [], // data: { // purpose: { id: transaction.id, typeOf: transaction.typeOf } // } // }; // taskAttributes.push(cancelPendingReservationTask); // } break; case factory.transactionStatusType.Expired: // const cancelActionAttributes = createCancelPendingReservationAction({ transaction }); // if (cancelActionAttributes !== undefined) { // } cancelPendingReservationTask = { project: transaction.project, name: factory.taskName.CancelPendingReservation, status: factory.taskStatus.Ready, runsAt: new Date(), // なるはやで実行 remainingNumberOfTries: 10, numberOfTried: 0, executionResults: [], data: { // optimize(2024-07-01~) // actionAttributes: [cancelActionAttributes] purpose: { id: transaction.id, typeOf: transaction.typeOf } } }; taskAttributes.push(cancelPendingReservationTask); break; default: throw new factory.errors.NotImplemented(`Transaction status "${transaction.status}" not implemented.`); } return repos.task.saveMany(taskAttributes, { emitImmediately: true }); }); }