UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

177 lines (176 loc) 10.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MovieticketReserveRequestErrorMessage = void 0; exports.createSeatInfoSyncIn = createSeatInfoSyncIn; exports.createStartingPayAction = createStartingPayAction; exports.processPurchaseNumberAuthResult2checkRecipe = processPurchaseNumberAuthResult2checkRecipe; exports.processSeatInfoSyncResult2payRecipe = processSeatInfoSyncResult2payRecipe; exports.processSeatInfoSyncResult2refundRecipe = processSeatInfoSyncResult2refundRecipe; const surfrock = require("@surfrock/sdk"); const moment = require("moment-timezone"); const factory = require("../../../factory"); function createSeatInfoSyncIn(params) { var _a, _b, _c; const event = params.event; const knyknrNoInfo = []; params.movieTickets.forEach((movieTicket) => { let knyknrNoInfoByKnyknrNoIndex = knyknrNoInfo.findIndex((i) => i.knyknrNo === movieTicket.identifier); if (knyknrNoInfoByKnyknrNoIndex < 0) { knyknrNoInfoByKnyknrNoIndex = knyknrNoInfo.push({ knyknrNo: movieTicket.identifier, pinCd: String(movieTicket.accessCode), knshInfo: [] }) - 1; } let knshInfoIndex = knyknrNoInfo[knyknrNoInfoByKnyknrNoIndex].knshInfo.findIndex((i) => i.knshTyp === movieTicket.serviceType); if (knshInfoIndex < 0) { knshInfoIndex = knyknrNoInfo[knyknrNoInfoByKnyknrNoIndex].knshInfo.push({ knshTyp: movieTicket.serviceType, miNum: 0 }) - 1; } knyknrNoInfo[knyknrNoInfoByKnyknrNoIndex].knshInfo[knshInfoIndex].miNum += 1; }); const seatNumbers = params.movieTickets.map((t) => t.serviceOutput.reservedTicket.ticketedSeat.seatNumber); let skhnCd = event.superEvent.workPerformed.identifier; // イベントインポート元がCOAの場合、作品コード連携方法が異なる if (((_b = (_a = event.offers) === null || _a === void 0 ? void 0 : _a.offeredThrough) === null || _b === void 0 ? void 0 : _b.identifier) === factory.service.webAPI.Identifier.COA) { const DIGITS = -2; // coaInfo依存へ変更(2024-07-20~) const { coaInfo } = event; if (coaInfo === undefined) { throw new factory.errors.NotFound('coaInfo', `coaInfo of event ${event.id} not found`); } const { titleBranchNum, titleCode } = coaInfo; skhnCd = `${titleCode}${`00${titleBranchNum}`.slice(DIGITS)}`; } const kgygishCd = params.credentials.kgygishCd; const stCd = params.credentials.stCd; const confirmationNumber = (_c = params.purpose) === null || _c === void 0 ? void 0 : _c.confirmationNumber; if (typeof confirmationNumber !== 'string' || confirmationNumber === '') { throw new factory.errors.ArgumentNull('purpose.confirmationNumber'); } return { kgygishCd: kgygishCd, yykDvcTyp: surfrock.factory.service.seat.seatInfoSync.ReserveDeviceType.EntertainerSitePC, // 予約デバイス区分 trkshFlg: surfrock.factory.service.seat.seatInfoSync.DeleteFlag.False, // 取消フラグ kgygishSstmZskyykNo: params.paymentMethodId, // 興行会社システム座席予約番号 kgygishUsrZskyykNo: confirmationNumber, // fix(2025-02-12~) // kgygishUsrZskyykNo: (typeof (<factory.action.trade.pay.IOrderAsPayPurpose>params.purpose)?.confirmationNumber === 'string') // ? String((<factory.action.trade.pay.IOrderAsPayPurpose>params.purpose).confirmationNumber) // 注文の確認番号の場合 // : String((<factory.action.trade.pay.IPurposeAsAssetTransaction>params.purpose)?.transactionNumber), // 決済取引番号の場合 jeiDt: moment(event.startDate) .tz('Asia/Tokyo') .format('YYYY/MM/DD HH:mm:ss'), // 上映日時 kijYmd: moment(event.startDate) .tz('Asia/Tokyo') .format('YYYY/MM/DD'), // 計上年月日 stCd: stCd, screnCd: event.location.branchCode, // スクリーンコード knyknrNoInfo: knyknrNoInfo, zskInfo: seatNumbers.map((seatNumber) => { return { zskCd: seatNumber }; }), skhnCd: skhnCd // 作品コード }; } function createStartingPayAction(params) { const firstObject = params.object.shift(); if (firstObject === undefined) { throw new factory.errors.ArgumentNull('object'); } const movieTicketsWithMaskedAccessCode = (Array.isArray(firstObject.movieTickets)) ? firstObject.movieTickets.map((movieTicket) => { return Object.assign(Object.assign({}, movieTicket), { accessCode: '****' // accessCodeを隠蔽(2023-02-08~) }); }) : []; return Object.assign(Object.assign({}, params), { object: [Object.assign(Object.assign({}, firstObject), { movieTickets: movieTicketsWithMaskedAccessCode })] }); } function processPurchaseNumberAuthResult2checkRecipe(params) { const { processPurchaseNumberAuthResult, project } = params; const { purchaseNumberAuthIn, purchaseNumberAuthResult } = processPurchaseNumberAuthResult; return { project: { id: project.id, typeOf: factory.organizationType.Project }, typeOf: 'Recipe', recipeCategory: factory.recipe.RecipeCategory.checkMovieTicket, step: [{ typeOf: 'HowToSection', itemListElement: [ { typeOf: 'HowToStep', identifier: factory.recipe.StepIdentifier.purchaseNumberAuth, itemListElement: [Object.assign(Object.assign({ typeOf: 'HowToDirection' }, (purchaseNumberAuthIn !== undefined) ? { beforeMedia: purchaseNumberAuthIn } : undefined), (purchaseNumberAuthResult !== undefined) ? { afterMedia: purchaseNumberAuthResult } : undefined)] } ] }] }; } function processSeatInfoSyncResult2payRecipe(params) { const { processSeatInfoSyncResult, project } = params; const { seatInfoSyncIn, seatInfoSyncResult } = processSeatInfoSyncResult; return { project: { id: project.id, typeOf: factory.organizationType.Project }, typeOf: 'Recipe', recipeCategory: factory.recipe.RecipeCategory.payMovieTicket, step: [{ typeOf: 'HowToSection', itemListElement: [ { typeOf: 'HowToStep', identifier: factory.recipe.StepIdentifier.seatInfoSync, itemListElement: [Object.assign(Object.assign({ typeOf: 'HowToDirection' }, (seatInfoSyncIn !== undefined) ? { beforeMedia: seatInfoSyncIn } : undefined), (seatInfoSyncResult !== undefined) ? { afterMedia: seatInfoSyncResult } : undefined)] } ] }] }; } function processSeatInfoSyncResult2refundRecipe(params) { const { processSeatInfoSyncResult, processSeatInfoSyncCancelResult, project } = params; if (processSeatInfoSyncResult !== undefined) { const { seatInfoSyncIn, seatInfoSyncResult } = processSeatInfoSyncResult; return { project: { id: project.id, typeOf: factory.organizationType.Project }, typeOf: 'Recipe', recipeCategory: factory.recipe.RecipeCategory.refundMovieTicket, step: [{ typeOf: 'HowToSection', itemListElement: [ { typeOf: 'HowToStep', identifier: factory.recipe.StepIdentifier.seatInfoSync, itemListElement: [Object.assign(Object.assign({ typeOf: 'HowToDirection' }, (seatInfoSyncIn !== undefined) ? { beforeMedia: seatInfoSyncIn } : undefined), (seatInfoSyncResult !== undefined) ? { afterMedia: seatInfoSyncResult } : undefined)] } ] }] }; } else if (processSeatInfoSyncCancelResult !== undefined) { const { seatInfoSyncCancelIn, seatInfoSyncCancelResult } = processSeatInfoSyncCancelResult; return { project: { id: project.id, typeOf: factory.organizationType.Project }, typeOf: 'Recipe', recipeCategory: factory.recipe.RecipeCategory.refundMovieTicket, step: [{ typeOf: 'HowToSection', itemListElement: [ { typeOf: 'HowToStep', identifier: factory.recipe.StepIdentifier.seatInfoSyncCancel, itemListElement: [Object.assign(Object.assign({ typeOf: 'HowToDirection' }, (seatInfoSyncCancelIn !== undefined) ? { beforeMedia: seatInfoSyncCancelIn } : undefined), (seatInfoSyncCancelResult !== undefined) ? { afterMedia: seatInfoSyncCancelResult } : undefined)] } ] }] }; } else { throw new factory.errors.ArgumentNull('', 'processSeatInfoSyncResult or processSeatInfoSyncCancelResult required'); } } var MovieticketReserveRequestErrorMessage; (function (MovieticketReserveRequestErrorMessage) { MovieticketReserveRequestErrorMessage["AlreadyPaid"] = "\u65E2\u306B\u5B58\u5728\u3059\u308B\u8208\u884C\u30B7\u30B9\u30C6\u30E0\u5EA7\u5E2D\u4E88\u7D04\u756A\u53F7\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F\u3002"; MovieticketReserveRequestErrorMessage["NotFound"] = "\u5B58\u5728\u3057\u306A\u3044\u8208\u884C\u4F1A\u793E\u30B7\u30B9\u30C6\u30E0\u5EA7\u5E2D\u4E88\u7D04\u756A\u53F7\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F\u3002"; MovieticketReserveRequestErrorMessage["ReservationResult19"] = "ReservationResult 19"; MovieticketReserveRequestErrorMessage["CancellationPeriodPassed"] = "\u5EA7\u5E2D\u4E88\u7D04\u53D6\u6D88\u53EF\u80FD\u671F\u9593\u3092\u904E\u304E\u3066\u3044\u307E\u3059\u3002"; })(MovieticketReserveRequestErrorMessage || (exports.MovieticketReserveRequestErrorMessage = MovieticketReserveRequestErrorMessage = {}));