@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
JavaScript
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