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