@vulog/aima-document
Version:
84 lines (79 loc) • 2.78 kB
JavaScript
// 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
};