UNPKG

@vulog/aima-document

Version:

84 lines (79 loc) 2.78 kB
// src/createOrUpdateDocument.ts import { z } from "zod"; var schema = z.object({ userId: z.string().nonempty().uuid() }); var createOrUpdateDocument = async (client, userId, document) => { const result = schema.safeParse({ userId }); if (!result.success) { throw new TypeError("Invalid args", { cause: result.error.issues }); } return client.post( `/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/users/${userId}/documents`, document ).then(({ data }) => data); }; // src/getUserDocuments.ts import { z as z3 } from "zod"; // src/types.ts import { z as z2 } from "zod"; var personalInformationDocumentTypes = ["documentNumber1"]; var personalInformationDocumentTypeSchema = z2.enum(personalInformationDocumentTypes); // src/getUserDocuments.ts var schema2 = z3.object({ userId: z3.string().trim().nonempty().uuid(), types: z3.array(personalInformationDocumentTypeSchema).min(0).optional() }); var getUserDocuments = async (client, userId, types) => { const result = schema2.safeParse({ userId, types }); if (!result.success) { throw new TypeError("Invalid args", { cause: result.error.issues }); } const docSumary = await client.get(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/users/${userId}/documents`).then(({ data }) => data); if (docSumary && docSumary.documents?.length > 0 && result.data.types && result.data.types.length > 0) { const piTypes = result.data.types.join(","); docSumary.documents = await Promise.all( docSumary.documents.map(async (doc) => { const pi = await client.get( `/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/users/${userId}/documents/${doc.id}/pi?types=${piTypes}` ).then(({ data }) => data); if (pi?.documentNumber1) { return { ...doc, // Copy the original documentNumber: pi.documentNumber1 // update the documentNumber field }; } return doc; }) ); } return docSumary; }; // src/updateDocumentStatus.ts import { z as z4 } from "zod"; var schema3 = z4.object({ userId: z4.string().nonempty().uuid(), documentId: z4.number().nonnegative().int() }); var updateDocumentStatus = async (client, userId, documentId, document) => { const result = schema3.safeParse({ userId, documentId }); if (!result.success) { throw new TypeError("Invalid args", { cause: result.error.issues }); } return client.put(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/documents/${documentId}`, document).then(({ data }) => data); }; export { createOrUpdateDocument, getUserDocuments, personalInformationDocumentTypeSchema, personalInformationDocumentTypes, updateDocumentStatus };