@payunit/nodejs-sdk
Version:
PayUnit Payment Processor SDK
76 lines • 3.18 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkoutInitializeRequestSchema = exports.checkoutPaymentRequestSchema = exports.checkoutIdSchema = void 0;
const joi_1 = __importDefault(require("joi"));
const types_1 = require("../types");
const utils_1 = require("../utils");
exports.checkoutIdSchema = joi_1.default.object({
checkout_id: joi_1.default.string().required(),
});
exports.checkoutPaymentRequestSchema = joi_1.default.object({
checkout_id: joi_1.default.string().required(),
customer: joi_1.default.object({
email: joi_1.default.string().email().required(),
phone: joi_1.default.string()
.pattern(/^\d{8,10}$/)
.required(),
country: joi_1.default.string().required(),
name: joi_1.default.string().required(),
}).required(),
shipping: joi_1.default.object({
address: joi_1.default.string().required(),
phone: joi_1.default.string()
.pattern(/^\d{8,10}$/)
.required(),
payment_method: joi_1.default.string().required(),
payment_info: joi_1.default.object({
phone: joi_1.default.string()
.pattern(/^\d{8,10}$/)
.required(),
}).required(),
}).required(),
});
exports.checkoutInitializeRequestSchema = joi_1.default.object({
cancel_url: joi_1.default.string()
.pattern(utils_1.URL_PATTERN)
.messages({
'string.pattern.base': 'cancel_url must be a valid HTTPS URL',
})
.required(),
success_url: joi_1.default.string().pattern(utils_1.URL_PATTERN).required(),
notify_url: joi_1.default.string().pattern(utils_1.URL_PATTERN).optional(),
currency: joi_1.default.string()
.length(3)
.pattern(/^[A-Z]{3}$/)
.required(),
mode: joi_1.default.string().valid('payment', 'subscription').required(),
transaction_id: joi_1.default.string().required(),
total_amount: joi_1.default.number().min(0).required(),
payment_country: joi_1.default.string()
.valid(...Object.values(types_1.PaymentCountry))
.optional(),
pay_with: joi_1.default.string()
.valid(...Object.values(types_1.RegisteredProviders))
.optional(),
items: joi_1.default.array()
.required()
.items(joi_1.default.object({
price_description: joi_1.default.object({
unit_amount: joi_1.default.number().min(0).required(),
}).required(),
product_description: joi_1.default.object({
name: joi_1.default.string().required(),
image_url: joi_1.default.string().uri().optional(),
about_product: joi_1.default.string().optional(),
}).required(),
quantity: joi_1.default.number().min(1).required(),
})),
meta: joi_1.default.object({
phone_number_collection: joi_1.default.boolean().required(),
address_collection: joi_1.default.boolean().required(),
}).optional(),
});
//# sourceMappingURL=checkout.js.map