UNPKG

netopia-client

Version:

A fully-typed, TypeScript-based client for the Netopia payments API V2.

87 lines (86 loc) 2.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Product = exports.Payment = exports.Order = exports.Browser = void 0; const zod_1 = require("zod"); const errors_1 = require("./errors"); var Browser; (function (Browser) { Browser.Schema = zod_1.z.object({ userAgent: zod_1.z.string(), colorDepth: zod_1.z.number(), language: zod_1.z.string(), screenWidth: zod_1.z.number(), screenHeight: zod_1.z.number(), timeZone: zod_1.z.string(), mobile: zod_1.z.boolean(), }); Browser.parse = (data) => { try { return Browser.Schema.parse(data); } catch (error) { throw (0, errors_1.invalidBrowser)(error.message); } }; })(Browser || (exports.Browser = Browser = {})); var Order; (function (Order) { Order.Schema = zod_1.z.object({ posSignature: zod_1.z.string(), amount: zod_1.z.number().positive(), currency: zod_1.z.string().default("RON"), orderID: zod_1.z.string(), billing: zod_1.z.object({ firstName: zod_1.z.string(), lastName: zod_1.z.string(), email: zod_1.z.string().email(), phone: zod_1.z.string(), city: zod_1.z.string().optional(), country: zod_1.z.number().default(642), }), products: zod_1.z.array(Product.Schema), }); Order.parse = (data) => { try { return Order.Schema.parse(data); } catch (error) { throw (0, errors_1.invalidOrder)(error.message); } }; })(Order || (exports.Order = Order = {})); var Payment; (function (Payment) { Payment.Schema = zod_1.z.object({ account: zod_1.z.string(), expMonth: zod_1.z.number().min(1).max(12), expYear: zod_1.z.number().int().min(new Date().getFullYear()), secretCode: zod_1.z.string(), }); Payment.parse = (data) => { try { return Payment.Schema.parse(data); } catch (error) { throw (0, errors_1.invalidPayment)(error.message); } }; })(Payment || (exports.Payment = Payment = {})); var Product; (function (Product) { Product.Schema = zod_1.z.object({ category: zod_1.z.string().default("No Category"), code: zod_1.z.string().default("No Code"), name: zod_1.z.string().default("Unnamed Product"), price: zod_1.z.number().nonnegative().default(0), vat: zod_1.z.number().nonnegative().default(0), }); Product.parse = (data) => { try { return Product.Schema.parse(data); } catch (error) { throw new Error(error.message); } }; })(Product || (exports.Product = Product = {}));