@vulog/aima-billing
Version:
77 lines (73 loc) • 2.67 kB
JavaScript
// 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
};