UNPKG

@vulog/aima-billing

Version:

30 lines (25 loc) 1.09 kB
import { Client } from '@vulog/aima-client'; import z from 'zod'; import { ChargeProductInfo, Invoice } from './types'; const 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(), }); export const chargeProduct = async (client: Client, info: ChargeProductInfo) => { const result = schema.safeParse(info); if (!result.success) { throw new TypeError('Invalid args', { cause: result.error.issues, }); } return client .post<Invoice>(`/boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/invoices/product`, info) .then(({ data }) => data); };