UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

79 lines (78 loc) 3.57 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.onPaid = onPaid; /** * 決済イベント受信サービス */ const moment = require("moment-timezone"); const factory = require("../../../../factory"); function onPaid(params, project) { return (repos) => __awaiter(this, void 0, void 0, function* () { switch (params.purpose.typeOf) { // 返品手数料決済であれば case factory.actionType.ReturnAction: yield onReturnFeePaid(params, project)(repos); break; // 注文決済であれば case factory.order.OrderType.Order: yield onOrderPaid(params, project)(repos); break; default: } }); } function onReturnFeePaid(params, project) { return (repos) => __awaiter(this, void 0, void 0, function* () { var _a, _b; const orderNumber = (_b = (_a = params.purpose) === null || _a === void 0 ? void 0 : _a.object) === null || _b === void 0 ? void 0 : _b.orderNumber; if (typeof orderNumber !== 'string') { throw new factory.errors.Internal('params.purpose.object.orderNumber not string'); } // 経理レポートに決済アクションを追加 const action4save = Object.assign(Object.assign(Object.assign({}, params), { startDate: moment(params.startDate) .toDate() }), (params.endDate !== undefined) ? { endDate: moment(params.startDate) .toDate() } : undefined); const childReport = { typeOf: 'Report', mainEntity: action4save }; yield repos.accountingReport.addChildReport({ project: { id: project.id }, mainEntity: { orderNumber }, hasPart: childReport }); }); } function onOrderPaid(params, project) { return (repos) => __awaiter(this, void 0, void 0, function* () { var _a; const orderNumber = (_a = params.purpose) === null || _a === void 0 ? void 0 : _a.orderNumber; if (typeof orderNumber !== 'string') { throw new factory.errors.Internal('params.purpose.orderNumber not string'); } // 経理レポートに決済アクションを追加 const action4save = Object.assign(Object.assign(Object.assign({}, params), { startDate: moment(params.startDate) .toDate() }), (params.endDate !== undefined) ? { endDate: moment(params.startDate) .toDate() } : undefined); const childReport = { typeOf: 'Report', mainEntity: action4save }; yield repos.accountingReport.addChildReport({ project: { id: project.id }, mainEntity: { orderNumber }, hasPart: childReport }); }); }