UNPKG

@vulog/aima-billing

Version:

77 lines (73 loc) 2.67 kB
// src/chargeProduct.ts import z from "zod"; var schema = z.object({ productId: z.string().trim().min(1).uuid(), serviceId: z.string().trim().min(1).uuid().nullable().optional(), amount: z.number().min(0), userId: z.string().trim().min(1).uuid(), entityId: z.string().trim().min(1).uuid(), subscriptionId: z.string().trim().min(1).uuid().nullable().optional(), productNotes: z.string().trim().nullable().optional(), originId: z.string().trim().nullable().optional(), chargeProductRequestId: z.string().trim().min(1).uuid().nullable().optional() }); var chargeProduct = async (client, info) => { const result = schema.safeParse(info); if (!result.success) { throw new TypeError("Invalid args", { cause: result.error.issues }); } return client.post(`/boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/invoices/product`, info).then(({ data }) => data); }; // src/getUserCreditsByEntityId.ts import { z as z2 } from "zod"; var getUserCreditsByEntityId = async (client, id) => { const result = z2.string().trim().min(1).uuid().safeParse(id); if (!result.success) { throw new TypeError("Invalid id", { cause: result.error.issues }); } return client.get(`/boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/wallet/entity/${id}`).then(({ data }) => data); }; // src/addCredits.ts import z3 from "zod"; var schema2 = z3.object({ initialAmount: z3.number().min(0), validityStartDate: z3.string().datetime(), validityEndDate: z3.string().datetime(), notes: z3.string().trim().nullable().optional(), discountCategory: z3.enum(["CREDITS", "PERCENTAGE"]), oneTimeUsage: z3.boolean().optional(), entityId: z3.string().trim().min(1).uuid(), type: z3.enum(["LOCAL", "GLOBAL", "PERIODIC"]), usage: z3.enum(["TRIP", "REGISTRATION", "PRODUCTS", "ALL"]) }); var addCredits = async (client, payload) => { const result = schema2.safeParse(payload); if (!result.success) { throw new TypeError("Invalid args", { cause: result.error.issues }); } return client.post( `/boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/entities/${payload.entityId}/wallets`, result.data ).then(({ data }) => data); }; // src/getInvoiceById.ts import { z as z4 } from "zod"; var getInvoiceById = async (client, id) => { const result = z4.string().trim().min(1).uuid().safeParse(id); if (!result.success) { throw new Error("Invalid invoice ID"); } return client.get(`/boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/invoices/${id}`).then(({ data }) => data); }; export { addCredits, chargeProduct, getInvoiceById, getUserCreditsByEntityId };