UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

90 lines (89 loc) 4.95 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.processPurchaseNumberAuth = processPurchaseNumberAuth; const surfrock = require("@surfrock/sdk"); const moment = require("moment-timezone"); const factory = require("../../../factory"); const getCredentials_1 = require("./getCredentials"); function processPurchaseNumberAuth(params) { return (repos, settings) => __awaiter(this, void 0, void 0, function* () { var _a, _b, _c; let purchaseNumberAuthIn; let purchaseNumberAuthResult; // movieTickets.typeOfへの依存廃止(2024-03-15~) // MovieTicket系統の決済方法タイプは動的 // const paymentMethodType = params.movieTickets[0]?.typeOf; // if (typeof paymentMethodType !== 'string') { // throw new factory.errors.ArgumentNull('movieTickets.typeOf'); // } const availableChannel = yield repos.paymentService.findAvailableChannelMovieTicket({ project: params.screeningEvent.project, id: params.paymentServiceId }); const movieTicketIdentifiers = []; const knyknrNoInfoIn = []; params.movieTickets.forEach((movieTicket) => { if (movieTicketIdentifiers.indexOf(movieTicket.identifier) < 0) { movieTicketIdentifiers.push(movieTicket.identifier); knyknrNoInfoIn.push({ knyknrNo: movieTicket.identifier, pinCd: String(movieTicket.accessCode) }); } }); let skhnCd = params.screeningEvent.superEvent.workPerformed.identifier; const eventOffers = params.screeningEvent.offers; if (eventOffers === undefined) { throw new factory.errors.NotFound('EventOffers', 'Event offers undefined'); } const offeredThrough = eventOffers.offeredThrough; // イベントインポート元がCOAの場合、作品コード連携方法が異なる if (offeredThrough !== undefined && offeredThrough.identifier === factory.service.webAPI.Identifier.COA) { const DIGITS = -2; // coaInfo依存へ(2024-07-20~) const { coaInfo } = params.screeningEvent; if (coaInfo === undefined) { throw new factory.errors.NotFound('coaInfo', `coaInfo of ${params.screeningEvent.typeOf} ${params.screeningEvent.id} not found`); } const { titleBranchNum, titleCode } = coaInfo; skhnCd = `${titleCode}${`00${titleBranchNum}`.slice(DIGITS)}`; } const sellerCredentials = yield (0, getCredentials_1.getCredentials)({ seller: { id: String(params.seller.id), project: { id: params.screeningEvent.project.id } }, paymentServiceId: params.paymentServiceId })(repos); purchaseNumberAuthIn = { kgygishCd: sellerCredentials.kgygishCd, jhshbtsCd: surfrock.factory.service.auth.purchaseNumberAuth.InformationTypeCode.All, knyknrNoInfoIn: knyknrNoInfoIn, skhnCd: skhnCd, stCd: sellerCredentials.stCd, jeiYmd: moment(params.screeningEvent.startDate) .tz('Asia/Tokyo') .format('YYYY/MM/DD') }; const mvtkReserveAuthClient = new surfrock.auth.ClientCredentials({ domain: String((_a = availableChannel.credentials) === null || _a === void 0 ? void 0 : _a.authorizeServerDomain), clientId: String((_b = availableChannel.credentials) === null || _b === void 0 ? void 0 : _b.clientId), clientSecret: String((_c = availableChannel.credentials) === null || _c === void 0 ? void 0 : _c.clientSecret), scopes: [], state: '', credentialsRepo: repos.credentials // set credentialsRepo(2024-11-20~) }); const authService = new surfrock.service.auth.AuthService({ endpoint: String(availableChannel.serviceUrl), auth: mvtkReserveAuthClient }, { timeout: settings.movieticketReserve.timeoutCheck }); purchaseNumberAuthResult = yield authService.purchaseNumberAuth(purchaseNumberAuthIn); return { purchaseNumberAuthIn, purchaseNumberAuthResult }; }); }