UNPKG

@cranberry-money/shared-services

Version:

Platform-agnostic API services with pure functions and dependency injection. Includes auth, portfolios, instruments, countries, sectors, and more.

90 lines 3.57 kB
import { DOCUMENT_ENDPOINTS, DOCUMENT_TYPE_MDA, DOCUMENT_TYPE_SOA, DOCUMENT_TYPE_AGREEMENT, DOCUMENT_SERVICE, } from '@cranberry-money/shared-constants'; let configuredApiClient = null; export const configureDocuments = (apiClient) => { configuredApiClient = apiClient; }; const getConfiguredClient = () => { if (!configuredApiClient) { throw new Error('Documents service not configured. Call configureDocuments(apiClient) before using document functions.'); } return configuredApiClient; }; export const generateMDADocument = () => { return getConfiguredClient().post(DOCUMENT_ENDPOINTS.MDA, {}); }; export const generateSOADocument = () => { return getConfiguredClient().post(DOCUMENT_ENDPOINTS.SOA, {}); }; export const generateAgreementDocument = () => { return getConfiguredClient().post(DOCUMENT_ENDPOINTS.AGREEMENT, {}); }; export const generateDocument = (documentType) => { switch (documentType) { case DOCUMENT_TYPE_MDA: return generateMDADocument(); case DOCUMENT_TYPE_SOA: return generateSOADocument(); case DOCUMENT_TYPE_AGREEMENT: return generateAgreementDocument(); default: throw new Error(`Unsupported document type: ${documentType}`); } }; export const downloadMDADocument = (documentUuid) => { return getConfiguredClient().get(`${DOCUMENT_ENDPOINTS.MDA}${documentUuid}/`, { responseType: DOCUMENT_SERVICE.RESPONSE_TYPE_BLOB, headers: { Accept: DOCUMENT_SERVICE.CONTENT_TYPE_ANY, }, }); }; export const downloadSOADocument = (documentUuid) => { return getConfiguredClient().get(`${DOCUMENT_ENDPOINTS.SOA}${documentUuid}/`, { responseType: DOCUMENT_SERVICE.RESPONSE_TYPE_BLOB, headers: { Accept: DOCUMENT_SERVICE.CONTENT_TYPE_ANY, }, }); }; export const downloadAgreementDocument = (documentUuid) => { return getConfiguredClient().get(`${DOCUMENT_ENDPOINTS.AGREEMENT}${documentUuid}/`, { responseType: DOCUMENT_SERVICE.RESPONSE_TYPE_BLOB, headers: { Accept: DOCUMENT_SERVICE.CONTENT_TYPE_ANY, }, }); }; export const downloadDocument = (documentType, documentUuid) => { switch (documentType) { case DOCUMENT_TYPE_MDA: return downloadMDADocument(documentUuid); case DOCUMENT_TYPE_SOA: return downloadSOADocument(documentUuid); case DOCUMENT_TYPE_AGREEMENT: return downloadAgreementDocument(documentUuid); default: throw new Error(`Unsupported document type: ${documentType}`); } }; export const signMDADocument = (documentUuid) => { return getConfiguredClient().patch(`${DOCUMENT_ENDPOINTS.MDA}${documentUuid}/`, {}); }; export const signSOADocument = (documentUuid) => { return getConfiguredClient().patch(`${DOCUMENT_ENDPOINTS.SOA}${documentUuid}/`, {}); }; export const signAgreementDocument = (documentUuid) => { return getConfiguredClient().patch(`${DOCUMENT_ENDPOINTS.AGREEMENT}${documentUuid}/`, {}); }; export const signDocument = (documentType, documentUuid) => { switch (documentType) { case DOCUMENT_TYPE_MDA: return signMDADocument(documentUuid); case DOCUMENT_TYPE_SOA: return signSOADocument(documentUuid); case DOCUMENT_TYPE_AGREEMENT: return signAgreementDocument(documentUuid); default: throw new Error(`Unsupported document type: ${documentType}`); } }; //# sourceMappingURL=documents.js.map