fake-toss-payments-server
Version:
Fake toss-payments server for testing
480 lines • 39 kB
JavaScript
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FakeTossVirtualAccountsController = void 0;
var __nestia_core_transform_isFormatDateTime = __importStar(require("typia/lib/internal/_isFormatDateTime.js"));
var __nestia_core_transform_isFormatDate = __importStar(require("typia/lib/internal/_isFormatDate.js"));
var __nestia_core_transform_assertGuard = __importStar(require("typia/lib/internal/_assertGuard.js"));
var __nestia_core_transform_jsonStringifyString = __importStar(require("typia/lib/internal/_jsonStringifyString.js"));
var __nestia_core_transform_validateReport = __importStar(require("typia/lib/internal/_validateReport.js"));
var core_1 = __importDefault(require("@nestia/core"));
var common_1 = require("@nestjs/common");
var uuid_1 = require("uuid");
var FakeTossUserAuth_1 = require("../decorators/FakeTossUserAuth");
var FakeTossPaymentProvider_1 = require("../providers/FakeTossPaymentProvider");
var FakeTossStorage_1 = require("../providers/FakeTossStorage");
var FakeTossWebhookProvider_1 = require("../providers/FakeTossWebhookProvider");
var DateUtil_1 = require("../utils/DateUtil");
var FakeTossVirtualAccountsController = /** @class */ (function () {
function FakeTossVirtualAccountsController() {
}
/**
* 가상 계좌로 결제 신청하기.
*
* `virtual_accounts.create` 는 고객이 결제 수단을 가상 계좌로 선택하는 경우에 호출되는
* API 함수이다. 물론 고객이 이처럼 가상 계좌를 선택한 경우, 고객이 지정된 계좌에 돈을
* 입금하기 전까지는 결제가 마무리된 것이 아니기에, {@link ITossPayment.status} 값은
* `WAITING_FOR_DEPOSIT` 이 된다.
*
* 참고로 `virtual_accounts.create` 는 클라이언트 어플리케이션이 토스 페이먼츠가
* 자체적으로 제공하는 결제 창을 사용하는 경우, 귀하의 백엔드 서버가 이를 실 서비스에서
* 호출하는 일은 없을 것이다. 다만, 고객이 가상 계좌로 결제를 진행하는 상황을
* 시뮬레이션하기 위하여, 테스트 자동화 프로그램 수준에서 사용될 수는 있다.
*
* 그리고 `virtual_accounts.create` 이후에 고객이 지정된 계좌에 금액을 입금하거든, 토스
* 페이먼츠 서버로부터 웹훅 이벤트가 발생되어 귀하의 백엔드 서버로 전송된다. 만약 연동
* 대상 토스 페이먼츠 서버가 실제가 아닌 `fake-toss-payments-server` 라면,
* {@link internal.virtual_accounts.deposit} 를 호출하여, 고객이 가상 계좌에 입금하는
* 상황을 시뮬레이션 할 수 있다.
*
* @param input 가상 결제 신청 정보.
* @returns 가상 계좌 결제 정보
*
* @security basic
* @author Samchon
*/
FakeTossVirtualAccountsController.prototype.create = function (_0, input) {
var payment = __assign(__assign({}, FakeTossPaymentProvider_1.FakeTossPaymentProvider.get_common_props(input)), { method: "가상계좌", type: "NORMAL", status: "WAITING_FOR_DEPOSIT", approvedAt: null, secret: (0, uuid_1.v4)(), virtualAccount: {
accountNumber: "110417532896",
accountType: "일반",
bank: input.bank,
customerName: input.customerName,
dueDate: DateUtil_1.DateUtil.to_string(DateUtil_1.DateUtil.add_days(new Date(), 3), false),
expired: false,
settlementStatus: "INCOMPLETED",
refundStatus: "NONE",
} });
FakeTossStorage_1.FakeTossStorage.payments.set(payment.paymentKey, payment);
FakeTossWebhookProvider_1.FakeTossWebhookProvider.webhook({
eventType: "PAYMENT_STATUS_CHANGED",
data: {
paymentKey: payment.paymentKey,
orderId: payment.orderId,
status: "WAITING_FOR_DEPOSIT",
},
}).catch(function () { });
return payment;
};
__decorate([
core_1.default.TypedRoute.Post({ type: "assert", assert: (function () { var _io0 = function (input) { return "string" === typeof input.secret && ("object" === typeof input.virtualAccount && null !== input.virtualAccount && _io1(input.virtualAccount)) && "\uAC00\uC0C1\uACC4\uC88C" === input.method && "NORMAL" === input.type && ("READY" === input.status || "IN_PROGRESS" === input.status || "WAITING_FOR_DEPOSIT" === input.status || "DONE" === input.status || "CANCELED" === input.status || "PARTIAL_CANCELED" === input.status || "ABORTED" === input.status || "EXPIRED" === input.status) && "string" === typeof input.mId && "string" === typeof input.version && "string" === typeof input.paymentKey && "string" === typeof input.orderId && "string" === typeof input.transactionKey && "string" === typeof input.orderName && "string" === typeof input.currency && ("number" === typeof input.totalAmount && !Number.isNaN(input.totalAmount)) && ("number" === typeof input.balanceAmount && !Number.isNaN(input.balanceAmount)) && ("number" === typeof input.suppliedAmount && !Number.isNaN(input.suppliedAmount)) && ("number" === typeof input.taxFreeAmount && !Number.isNaN(input.taxFreeAmount)) && ("number" === typeof input.vat && !Number.isNaN(input.vat)) && "boolean" === typeof input.useEscrow && "boolean" === typeof input.cultureExpense && ("string" === typeof input.requestedAt && __nestia_core_transform_isFormatDateTime._isFormatDateTime(input.requestedAt)) && (null === input.approvedAt || "string" === typeof input.approvedAt && __nestia_core_transform_isFormatDateTime._isFormatDateTime(input.approvedAt)) && (null === input.cancels || Array.isArray(input.cancels) && input.cancels.every(function (elem) { return "object" === typeof elem && null !== elem && _io2(elem); })) && (null === input.cashReceipt || "object" === typeof input.cashReceipt && null !== input.cashReceipt && _io3(input.cashReceipt)); }; var _io1 = function (input) { return "string" === typeof input.accountNumber && ("\uC77C\uBC18" === input.accountType || "\uACE0\uC815" === input.accountType) && "string" === typeof input.bank && "string" === typeof input.customerName && ("string" === typeof input.dueDate && __nestia_core_transform_isFormatDate._isFormatDate(input.dueDate)) && "boolean" === typeof input.expired && ("INCOMPLETED" === input.settlementStatus || "COMPLETED" === input.settlementStatus) && ("COMPLETED" === input.refundStatus || "NONE" === input.refundStatus || "FAILED" === input.refundStatus || "PENDING" === input.refundStatus || "PARTIAL_FAILED" === input.refundStatus); }; var _io2 = function (input) { return "number" === typeof input.cancelAmount && !Number.isNaN(input.cancelAmount) && "string" === typeof input.cancelReason && ("number" === typeof input.taxFreeAmount && !Number.isNaN(input.taxFreeAmount)) && ("number" === typeof input.taxAmount && !Number.isNaN(input.taxAmount)) && ("number" === typeof input.refundableAmount && !Number.isNaN(input.refundableAmount)) && ("string" === typeof input.canceledAt && __nestia_core_transform_isFormatDateTime._isFormatDateTime(input.canceledAt)); }; var _io3 = function (input) { return ("\uC18C\uB4DD\uACF5\uC81C" === input.type || "\uC9C0\uCD9C\uC99D\uBE59" === input.type) && ("number" === typeof input.amount && !Number.isNaN(input.amount)) && ("number" === typeof input.taxFreeAmount && !Number.isNaN(input.taxFreeAmount)) && "string" === typeof input.issueNumber && "string" === typeof input.receiptUrl; }; var _ao0 = function (input, _path, _exceptionable) {
if (_exceptionable === void 0) { _exceptionable = true; }
return ("string" === typeof input.secret || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".secret",
expected: "string",
value: input.secret
}, _errorFactory)) && (("object" === typeof input.virtualAccount && null !== input.virtualAccount || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".virtualAccount",
expected: "ITossVirtualAccountPayment.IVirtualAccount",
value: input.virtualAccount
}, _errorFactory)) && _ao1(input.virtualAccount, _path + ".virtualAccount", true && _exceptionable) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".virtualAccount",
expected: "ITossVirtualAccountPayment.IVirtualAccount",
value: input.virtualAccount
}, _errorFactory)) && ("\uAC00\uC0C1\uACC4\uC88C" === input.method || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".method",
expected: "\"\uAC00\uC0C1\uACC4\uC88C\"",
value: input.method
}, _errorFactory)) && ("NORMAL" === input.type || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".type",
expected: "\"NORMAL\"",
value: input.type
}, _errorFactory)) && ("READY" === input.status || "IN_PROGRESS" === input.status || "WAITING_FOR_DEPOSIT" === input.status || "DONE" === input.status || "CANCELED" === input.status || "PARTIAL_CANCELED" === input.status || "ABORTED" === input.status || "EXPIRED" === input.status || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".status",
expected: "(\"ABORTED\" | \"CANCELED\" | \"DONE\" | \"EXPIRED\" | \"IN_PROGRESS\" | \"PARTIAL_CANCELED\" | \"READY\" | \"WAITING_FOR_DEPOSIT\")",
value: input.status
}, _errorFactory)) && ("string" === typeof input.mId || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".mId",
expected: "string",
value: input.mId
}, _errorFactory)) && ("string" === typeof input.version || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".version",
expected: "string",
value: input.version
}, _errorFactory)) && ("string" === typeof input.paymentKey || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".paymentKey",
expected: "string",
value: input.paymentKey
}, _errorFactory)) && ("string" === typeof input.orderId || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".orderId",
expected: "string",
value: input.orderId
}, _errorFactory)) && ("string" === typeof input.transactionKey || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".transactionKey",
expected: "string",
value: input.transactionKey
}, _errorFactory)) && ("string" === typeof input.orderName || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".orderName",
expected: "string",
value: input.orderName
}, _errorFactory)) && ("string" === typeof input.currency || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".currency",
expected: "string",
value: input.currency
}, _errorFactory)) && ("number" === typeof input.totalAmount && !Number.isNaN(input.totalAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".totalAmount",
expected: "number",
value: input.totalAmount
}, _errorFactory)) && ("number" === typeof input.balanceAmount && !Number.isNaN(input.balanceAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".balanceAmount",
expected: "number",
value: input.balanceAmount
}, _errorFactory)) && ("number" === typeof input.suppliedAmount && !Number.isNaN(input.suppliedAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".suppliedAmount",
expected: "number",
value: input.suppliedAmount
}, _errorFactory)) && ("number" === typeof input.taxFreeAmount && !Number.isNaN(input.taxFreeAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".taxFreeAmount",
expected: "number",
value: input.taxFreeAmount
}, _errorFactory)) && ("number" === typeof input.vat && !Number.isNaN(input.vat) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".vat",
expected: "number",
value: input.vat
}, _errorFactory)) && ("boolean" === typeof input.useEscrow || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".useEscrow",
expected: "boolean",
value: input.useEscrow
}, _errorFactory)) && ("boolean" === typeof input.cultureExpense || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cultureExpense",
expected: "boolean",
value: input.cultureExpense
}, _errorFactory)) && ("string" === typeof input.requestedAt && (__nestia_core_transform_isFormatDateTime._isFormatDateTime(input.requestedAt) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".requestedAt",
expected: "string & Format<\"date-time\">",
value: input.requestedAt
}, _errorFactory)) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".requestedAt",
expected: "(string & Format<\"date-time\">)",
value: input.requestedAt
}, _errorFactory)) && (null === input.approvedAt || "string" === typeof input.approvedAt && (__nestia_core_transform_isFormatDateTime._isFormatDateTime(input.approvedAt) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".approvedAt",
expected: "string & Format<\"date-time\">",
value: input.approvedAt
}, _errorFactory)) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".approvedAt",
expected: "((string & Format<\"date-time\">) | null)",
value: input.approvedAt
}, _errorFactory)) && (null === input.cancels || (Array.isArray(input.cancels) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cancels",
expected: "(Array<ITossPaymentCancel> | null)",
value: input.cancels
}, _errorFactory)) && input.cancels.every(function (elem, _index2) { return ("object" === typeof elem && null !== elem || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cancels[" + _index2 + "]",
expected: "ITossPaymentCancel",
value: elem
}, _errorFactory)) && _ao2(elem, _path + ".cancels[" + _index2 + "]", true && _exceptionable) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cancels[" + _index2 + "]",
expected: "ITossPaymentCancel",
value: elem
}, _errorFactory); }) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cancels",
expected: "(Array<ITossPaymentCancel> | null)",
value: input.cancels
}, _errorFactory)) && (null === input.cashReceipt || ("object" === typeof input.cashReceipt && null !== input.cashReceipt || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cashReceipt",
expected: "(ITossCashReceipt.ISummary | null)",
value: input.cashReceipt
}, _errorFactory)) && _ao3(input.cashReceipt, _path + ".cashReceipt", true && _exceptionable) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cashReceipt",
expected: "(ITossCashReceipt.ISummary | null)",
value: input.cashReceipt
}, _errorFactory));
}; var _ao1 = function (input, _path, _exceptionable) {
if (_exceptionable === void 0) { _exceptionable = true; }
return ("string" === typeof input.accountNumber || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".accountNumber",
expected: "string",
value: input.accountNumber
}, _errorFactory)) && ("\uC77C\uBC18" === input.accountType || "\uACE0\uC815" === input.accountType || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".accountType",
expected: "(\"\uACE0\uC815\" | \"\uC77C\uBC18\")",
value: input.accountType
}, _errorFactory)) && ("string" === typeof input.bank || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".bank",
expected: "string",
value: input.bank
}, _errorFactory)) && ("string" === typeof input.customerName || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".customerName",
expected: "string",
value: input.customerName
}, _errorFactory)) && ("string" === typeof input.dueDate && (__nestia_core_transform_isFormatDate._isFormatDate(input.dueDate) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".dueDate",
expected: "string & Format<\"date\">",
value: input.dueDate
}, _errorFactory)) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".dueDate",
expected: "(string & Format<\"date\">)",
value: input.dueDate
}, _errorFactory)) && ("boolean" === typeof input.expired || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".expired",
expected: "boolean",
value: input.expired
}, _errorFactory)) && ("INCOMPLETED" === input.settlementStatus || "COMPLETED" === input.settlementStatus || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".settlementStatus",
expected: "(\"COMPLETED\" | \"INCOMPLETED\")",
value: input.settlementStatus
}, _errorFactory)) && ("COMPLETED" === input.refundStatus || "NONE" === input.refundStatus || "FAILED" === input.refundStatus || "PENDING" === input.refundStatus || "PARTIAL_FAILED" === input.refundStatus || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".refundStatus",
expected: "(\"COMPLETED\" | \"FAILED\" | \"NONE\" | \"PARTIAL_FAILED\" | \"PENDING\")",
value: input.refundStatus
}, _errorFactory));
}; var _ao2 = function (input, _path, _exceptionable) {
if (_exceptionable === void 0) { _exceptionable = true; }
return ("number" === typeof input.cancelAmount && !Number.isNaN(input.cancelAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cancelAmount",
expected: "number",
value: input.cancelAmount
}, _errorFactory)) && ("string" === typeof input.cancelReason || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".cancelReason",
expected: "string",
value: input.cancelReason
}, _errorFactory)) && ("number" === typeof input.taxFreeAmount && !Number.isNaN(input.taxFreeAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".taxFreeAmount",
expected: "number",
value: input.taxFreeAmount
}, _errorFactory)) && ("number" === typeof input.taxAmount && !Number.isNaN(input.taxAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".taxAmount",
expected: "number",
value: input.taxAmount
}, _errorFactory)) && ("number" === typeof input.refundableAmount && !Number.isNaN(input.refundableAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".refundableAmount",
expected: "number",
value: input.refundableAmount
}, _errorFactory)) && ("string" === typeof input.canceledAt && (__nestia_core_transform_isFormatDateTime._isFormatDateTime(input.canceledAt) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".canceledAt",
expected: "string & Format<\"date-time\">",
value: input.canceledAt
}, _errorFactory)) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".canceledAt",
expected: "(string & Format<\"date-time\">)",
value: input.canceledAt
}, _errorFactory));
}; var _ao3 = function (input, _path, _exceptionable) {
if (_exceptionable === void 0) { _exceptionable = true; }
return ("\uC18C\uB4DD\uACF5\uC81C" === input.type || "\uC9C0\uCD9C\uC99D\uBE59" === input.type || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".type",
expected: "(\"\uC18C\uB4DD\uACF5\uC81C\" | \"\uC9C0\uCD9C\uC99D\uBE59\")",
value: input.type
}, _errorFactory)) && ("number" === typeof input.amount && !Number.isNaN(input.amount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".amount",
expected: "number",
value: input.amount
}, _errorFactory)) && ("number" === typeof input.taxFreeAmount && !Number.isNaN(input.taxFreeAmount) || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".taxFreeAmount",
expected: "number",
value: input.taxFreeAmount
}, _errorFactory)) && ("string" === typeof input.issueNumber || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".issueNumber",
expected: "string",
value: input.issueNumber
}, _errorFactory)) && ("string" === typeof input.receiptUrl || __nestia_core_transform_assertGuard._assertGuard(_exceptionable, {
method: "core.TypedRoute.Post",
path: _path + ".receiptUrl",
expected: "string",
value: input.receiptUrl
}, _errorFactory));
}; var _so0 = function (input) { return "{\"secret\":".concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.secret), ",\"virtualAccount\":").concat(_so1(input.virtualAccount), ",\"method\":").concat("\"" + input.method + "\"", ",\"type\":").concat("\"" + input.type + "\"", ",\"status\":").concat("\"" + input.status + "\"", ",\"mId\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.mId), ",\"version\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.version), ",\"paymentKey\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.paymentKey), ",\"orderId\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.orderId), ",\"transactionKey\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.transactionKey), ",\"orderName\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.orderName), ",\"currency\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.currency), ",\"totalAmount\":").concat(input.totalAmount, ",\"balanceAmount\":").concat(input.balanceAmount, ",\"suppliedAmount\":").concat(input.suppliedAmount, ",\"taxFreeAmount\":").concat(input.taxFreeAmount, ",\"vat\":").concat(input.vat, ",\"useEscrow\":").concat(input.useEscrow, ",\"cultureExpense\":").concat(input.cultureExpense, ",\"requestedAt\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.requestedAt), ",\"approvedAt\":").concat(null !== input.approvedAt ? __nestia_core_transform_jsonStringifyString._jsonStringifyString(input.approvedAt) : "null", ",\"cancels\":").concat(null !== input.cancels ? "[".concat(input.cancels.map(function (elem) { return _so2(elem); }).join(","), "]") : "null", ",\"cashReceipt\":").concat(null !== input.cashReceipt ? _so3(input.cashReceipt) : "null", "}"); }; var _so1 = function (input) { return "{\"accountNumber\":".concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.accountNumber), ",\"accountType\":").concat("\"" + input.accountType + "\"", ",\"bank\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.bank), ",\"customerName\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.customerName), ",\"dueDate\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.dueDate), ",\"expired\":").concat(input.expired, ",\"settlementStatus\":").concat("\"" + input.settlementStatus + "\"", ",\"refundStatus\":").concat("\"" + input.refundStatus + "\"", "}"); }; var _so2 = function (input) { return "{\"cancelAmount\":".concat(input.cancelAmount, ",\"cancelReason\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.cancelReason), ",\"taxFreeAmount\":").concat(input.taxFreeAmount, ",\"taxAmount\":").concat(input.taxAmount, ",\"refundableAmount\":").concat(input.refundableAmount, ",\"canceledAt\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.canceledAt), "}"); }; var _so3 = function (input) { return "{\"type\":".concat("\"" + input.type + "\"", ",\"amount\":").concat(input.amount, ",\"taxFreeAmount\":").concat(input.taxFreeAmount, ",\"issueNumber\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.issueNumber), ",\"receiptUrl\":").concat(__nestia_core_transform_jsonStringifyString._jsonStringifyString(input.receiptUrl), "}"); }; var __is = function (input) { return "object" === typeof input && null !== input && _io0(input); }; var _errorFactory; var __assert = function (input, errorFactory) {
if (false === __is(input)) {
_errorFactory = errorFactory;
(function (input, _path, _exceptionable) {
if (_exceptionable === void 0) { _exceptionable = true; }
return ("object" === typeof input && null !== input || __nestia_core_transform_assertGuard._assertGuard(true, {
method: "core.TypedRoute.Post",
path: _path + "",
expected: "ITossVirtualAccountPayment",
value: input
}, _errorFactory)) && _ao0(input, _path + "", true) || __nestia_core_transform_assertGuard._assertGuard(true, {
method: "core.TypedRoute.Post",
path: _path + "",
expected: "ITossVirtualAccountPayment",
value: input
}, _errorFactory);
})(input, "$input", true);
}
return input;
}; var __stringify = function (input) { return _so0(input); }; return function (input, errorFactory) {
__assert(input, errorFactory);
return __stringify(input);
}; })() }),
__param(0, (0, FakeTossUserAuth_1.FakeTossUserAuth)()),
__param(1, core_1.default.TypedBody({ type: "validate", validate: (function () { var _io0 = function (input) { return "virtual-account" === input.method && "string" === typeof input.orderId && "string" === typeof input.orderName && "string" === typeof input.bank && "string" === typeof input.customerName && "number" === typeof input.amount && (undefined === input.__approved || "boolean" === typeof input.__approved); }; var _vo0 = function (input, _path, _exceptionable) {
if (_exceptionable === void 0) { _exceptionable = true; }
return ["virtual-account" === input.method || _report(_exceptionable, {
path: _path + ".method",
expected: "\"virtual-account\"",
value: input.method
}), "string" === typeof input.orderId || _report(_exceptionable, {
path: _path + ".orderId",
expected: "string",
value: input.orderId
}), "string" === typeof input.orderName || _report(_exceptionable, {
path: _path + ".orderName",
expected: "string",
value: input.orderName
}), "string" === typeof input.bank || _report(_exceptionable, {
path: _path + ".bank",
expected: "string",
value: input.bank
}), "string" === typeof input.customerName || _report(_exceptionable, {
path: _path + ".customerName",
expected: "string",
value: input.customerName
}), "number" === typeof input.amount || _report(_exceptionable, {
path: _path + ".amount",
expected: "number",
value: input.amount
}), undefined === input.__approved || "boolean" === typeof input.__approved || _report(_exceptionable, {
path: _path + ".__approved",
expected: "(boolean | undefined)",
value: input.__approved
})].every(function (flag) { return flag; });
}; var __is = function (input) { return "object" === typeof input && null !== input && _io0(input); }; var errors; var _report; return function (input) {
if (false === __is(input)) {
errors = [];
_report = __nestia_core_transform_validateReport._validateReport(errors);
(function (input, _path, _exceptionable) {
if (_exceptionable === void 0) { _exceptionable = true; }
return ("object" === typeof input && null !== input || _report(true, {
path: _path + "",
expected: "ITossVirtualAccountPayment.ICreate",
value: input
})) && _vo0(input, _path + "", true) || _report(true, {
path: _path + "",
expected: "ITossVirtualAccountPayment.ICreate",
value: input
});
})(input, "$input", true);
var success = 0 === errors.length;
return success ? {
success: success,
data: input
} : {
success: success,
errors: errors,
data: input
};
}
return {
success: true,
data: input
};
}; })() })),
__metadata("design:type", Function),
__metadata("design:paramtypes", [void 0, Object]),
__metadata("design:returntype", Object)
], FakeTossVirtualAccountsController.prototype, "create", null);
FakeTossVirtualAccountsController = __decorate([
(0, common_1.Controller)("v1/virtual-accounts")
], FakeTossVirtualAccountsController);
return FakeTossVirtualAccountsController;
}());
exports.FakeTossVirtualAccountsController = FakeTossVirtualAccountsController;
//# sourceMappingURL=FakeTossVirtualAccountsController.js.map