@cranberry-money/shared-services
Version:
Platform-agnostic API services with pure functions and dependency injection. Includes auth, portfolios, instruments, countries, sectors, and more.
54 lines • 1.92 kB
JavaScript
import { TARGET_TRADE_ENDPOINTS } from '@cranberry-money/shared-constants';
let configuredApiClient = null;
export const configureTargetTrades = (apiClient) => {
configuredApiClient = apiClient;
};
const getConfiguredClient = () => {
if (!configuredApiClient) {
throw new Error('Target trades service not configured. Call configureTargetTrades(apiClient) before using target trades functions.');
}
return configuredApiClient;
};
export const getTargetTrades = (params) => {
const queryParams = {};
if (params?.portfolio) {
queryParams.portfolio = params.portfolio;
}
if (params?.instrument) {
queryParams.instrument = params.instrument;
}
if (params?.action) {
queryParams.action = params.action;
}
if (params?.status) {
queryParams.status = params.status;
}
if (params?.start_date) {
queryParams.start_date = params.start_date;
}
if (params?.end_date) {
queryParams.end_date = params.end_date;
}
if (params?.min_price !== undefined) {
queryParams.min_price = params.min_price.toString();
}
if (params?.max_price !== undefined) {
queryParams.max_price = params.max_price.toString();
}
return getConfiguredClient().get(TARGET_TRADE_ENDPOINTS.BASE, {
params: queryParams,
});
};
export const getTargetTradeByUuid = (uuid) => {
return getConfiguredClient().get(`${TARGET_TRADE_ENDPOINTS.BASE}${uuid}/`);
};
export const createTargetTrade = (data) => {
return getConfiguredClient().post(TARGET_TRADE_ENDPOINTS.BASE, data);
};
export const updateTargetTrade = (uuid, data) => {
return getConfiguredClient().patch(`${TARGET_TRADE_ENDPOINTS.BASE}${uuid}/`, data);
};
export const deleteTargetTrade = (uuid) => {
return getConfiguredClient().delete(`${TARGET_TRADE_ENDPOINTS.BASE}${uuid}/`);
};
//# sourceMappingURL=targetTrades.js.map