@chevre/domain
Version:
Chevre Domain Library for Node.js
89 lines (88 loc) • 4.58 kB
JavaScript
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 });
});
}
;