UNPKG

@cranberry-money/shared-services

Version:

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

56 lines 2.37 kB
import { TARGET_TRADE_SHEET_ENDPOINTS } from '@cranberry-money/shared-constants'; let configuredApiClient = null; export const configureTargetTradeSheets = (apiClient) => { configuredApiClient = apiClient; }; const getConfiguredClient = () => { if (!configuredApiClient) { throw new Error('Target trade sheets service not configured. Call configureTargetTradeSheets(apiClient) before using target trade sheets functions.'); } return configuredApiClient; }; export const getTargetTradeSheets = (params) => { const queryParams = {}; if (params?.portfolio) { queryParams.portfolio = params.portfolio; } if (params?.start_date) { queryParams.start_date = params.start_date; } if (params?.end_date) { queryParams.end_date = params.end_date; } return getConfiguredClient().get(TARGET_TRADE_SHEET_ENDPOINTS.BASE, { params: queryParams, }); }; export const getTargetTradeSheetByUuid = (uuid) => { return getConfiguredClient().get(`${TARGET_TRADE_SHEET_ENDPOINTS.BASE}${uuid}/`); }; export const createTargetTradeSheet = (data) => { return getConfiguredClient().post(TARGET_TRADE_SHEET_ENDPOINTS.BASE, data); }; export const updateTargetTradeSheet = (uuid, data) => { return getConfiguredClient().patch(`${TARGET_TRADE_SHEET_ENDPOINTS.BASE}${uuid}/`, data); }; export const deleteTargetTradeSheet = (uuid) => { return getConfiguredClient().delete(`${TARGET_TRADE_SHEET_ENDPOINTS.BASE}${uuid}/`); }; export const approveTargetTradeSheet = (uuid) => { return getConfiguredClient().post(`${TARGET_TRADE_SHEET_ENDPOINTS.BASE}${uuid}/approve/`); }; export const cleanTargetTradeSheet = (uuid) => { return getConfiguredClient().post(`${TARGET_TRADE_SHEET_ENDPOINTS.BASE}${uuid}/clean/`); }; export const getOrCreateDraftTargetTradeSheet = async (portfolioUuid) => { const targetTradeSheetsResponse = await getTargetTradeSheets({ portfolio: portfolioUuid }); const draftTargetTradeSheet = targetTradeSheetsResponse.data.results.find(sheet => sheet.status === 'DRAFT'); if (draftTargetTradeSheet) { return draftTargetTradeSheet.uuid; } const newTargetTradeSheetResponse = await createTargetTradeSheet({ portfolio: portfolioUuid, }); return newTargetTradeSheetResponse.data.uuid; }; //# sourceMappingURL=targetTradeSheets.js.map