UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

86 lines (85 loc) 5.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NUM_TRY_INFORM_RESERVATION = void 0; exports.optimizeUnderName4inform = optimizeUnderName4inform; exports.createMoneyTransferActions = createMoneyTransferActions; exports.createCancelPendingReservationAction = createCancelPendingReservationAction; const factory = require("../../factory"); function optimizeUnderName4inform(params) { return { id: params.underName.id, typeOf: params.underName.typeOf }; } exports.NUM_TRY_INFORM_RESERVATION = 10; function createMoneyTransferActions(params) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s; const pointAward = (_b = (_a = params.acceptedOffer) === null || _a === void 0 ? void 0 : _a.itemOffered) === null || _b === void 0 ? void 0 : _b.pointAward; const moneyTransfer = []; // ポイント特典があれば適用 const pointAwardToLocationIdentifier = (_c = pointAward === null || pointAward === void 0 ? void 0 : pointAward.toLocation) === null || _c === void 0 ? void 0 : _c.identifier; const pointAwardToLocationTypeOf = (_d = pointAward === null || pointAward === void 0 ? void 0 : pointAward.toLocation) === null || _d === void 0 ? void 0 : _d.typeOf; if (typeof ((_e = pointAward === null || pointAward === void 0 ? void 0 : pointAward.amount) === null || _e === void 0 ? void 0 : _e.value) === 'number' && typeof pointAwardToLocationIdentifier === 'string' && typeof pointAwardToLocationTypeOf === 'string') { const fromLocation = { typeOf: (typeof ((_f = params.reservation.reservedTicket.issuedBy) === null || _f === void 0 ? void 0 : _f.typeOf) === 'string') ? params.reservation.reservedTicket.issuedBy.typeOf : params.transaction.typeOf, name: (typeof ((_g = params.reservation.reservedTicket.issuedBy) === null || _g === void 0 ? void 0 : _g.name) === 'string') ? params.reservation.reservedTicket.issuedBy.name : params.transaction.id }; const toLocation = { identifier: pointAwardToLocationIdentifier, typeOf: factory.permit.PermitType.Permit, issuedThrough: { id: String((_j = (_h = pointAward.toLocation) === null || _h === void 0 ? void 0 : _h.issuedThrough) === null || _j === void 0 ? void 0 : _j.id) } }; const recipient = { typeOf: (typeof ((_k = params.underName) === null || _k === void 0 ? void 0 : _k.typeOf) === 'string') ? (_l = params.underName) === null || _l === void 0 ? void 0 : _l.typeOf : factory.personType.Person, id: (typeof ((_m = params.underName) === null || _m === void 0 ? void 0 : _m.id) === 'string') ? (_o = params.underName) === null || _o === void 0 ? void 0 : _o.id : '', name: String((_p = params.underName) === null || _p === void 0 ? void 0 : _p.name) }; moneyTransfer.push(Object.assign(Object.assign({ project: params.transaction.project, typeOf: factory.actionType.MoneyTransfer, agent: params.transaction.project, recipient, object: { typeOf: factory.account.transactionType.Deposit }, purpose: Object.assign({ typeOf: params.transaction.typeOf, id: params.transaction.id }, (typeof ((_q = pointAward.purpose) === null || _q === void 0 ? void 0 : _q.identifier) === 'string') ? { identifier: pointAward.purpose.identifier } : undefined), amount: { typeOf: 'MonetaryAmount', value: (_r = pointAward.amount) === null || _r === void 0 ? void 0 : _r.value, currency: (_s = pointAward.amount) === null || _s === void 0 ? void 0 : _s.currency }, fromLocation: fromLocation, toLocation: toLocation }, (typeof pointAward.description === 'string') ? { description: pointAward.description } : undefined), (pointAward.recipient !== undefined) ? { recipient: pointAward.recipient } : undefined)); } return moneyTransfer; } function createCancelPendingReservationAction(params) { const transaction = params.transaction; const pendingReservations = (Array.isArray(transaction.object.subReservation)) ? transaction.object.subReservation : []; let cancelActionAttributes; if (pendingReservations.length > 0) { const reservationFor = transaction.object.reservationFor; if (reservationFor === undefined) { throw new factory.errors.NotFound('transaction.object.reservationFor'); } // ReservationPackageに対応(2022-12-23~) const reservationPackage = { typeOf: factory.reservationType.ReservationPackage, reservationNumber: transaction.transactionNumber, reservationFor: { typeOf: reservationFor.typeOf, id: String(reservationFor.id) }, reservationStatus: (typeof params.transaction.object.reservationStatus === 'string') ? params.transaction.object.reservationStatus : factory.reservationStatusType.ReservationPending }; let placeOrderAsInstrument; if (Array.isArray(params.transaction.instrument)) { for (const eachInstrument of params.transaction.instrument) { if (eachInstrument.typeOf === factory.transactionType.PlaceOrder && typeof eachInstrument.id === 'string') { placeOrderAsInstrument = { id: eachInstrument.id, typeOf: factory.transactionType.PlaceOrder }; break; } } } cancelActionAttributes = Object.assign({ project: transaction.project, typeOf: factory.actionType.CancelAction, purpose: { typeOf: transaction.typeOf, id: transaction.id }, agent: transaction.project, object: reservationPackage }, (placeOrderAsInstrument !== undefined) ? { instrument: [placeOrderAsInstrument] } : undefined // add about(2025-02-19~) ); } return cancelActionAttributes; }