@infosel-sdk/funds
Version:
SDK de Fondos para la plataforma de servicios financieros Infosel
103 lines • 6.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
class FundsDatasourceImpl {
constructor(httpClient) {
this.httpClient = httpClient;
}
getFunds(request) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const params = Object.fromEntries(Object.entries({
fundTypeId: request === null || request === void 0 ? void 0 : request.typeId,
administratorId: request === null || request === void 0 ? void 0 : request.administratorId,
}));
const response = yield this.httpClient.get('/funds', { params });
const models = response.funds || [];
return models.map(model => ({
id: (model === null || model === void 0 ? void 0 : model.id) || -1,
marketTypeId: (model === null || model === void 0 ? void 0 : model.marketTypeId) || -1,
valueTypeIds: (model === null || model === void 0 ? void 0 : model.valueTypeIds) || -1,
exchangeId: (model === null || model === void 0 ? void 0 : model.exchangeId) || -1,
symbol: (model === null || model === void 0 ? void 0 : model.symbol) || '',
issuer: (model === null || model === void 0 ? void 0 : model.issuer) || '',
series: (model === null || model === void 0 ? void 0 : model.series) || '',
isTrading: (model === null || model === void 0 ? void 0 : model.isTrading) || -1,
name: (model === null || model === void 0 ? void 0 : model.name) || '',
instrumentKey: (model === null || model === void 0 ? void 0 : model.instrumentKey) || '',
exchangeValueType: (model === null || model === void 0 ? void 0 : model.exchangeValueType) || '',
isin: (model === null || model === void 0 ? void 0 : model.isin) || '',
active: (model === null || model === void 0 ? void 0 : model.active) || -1,
}));
});
}
getFundProspectus(request) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const params = { issuer: request.issuer };
const response = yield this.httpClient.get('/funds/prospectus', { params });
return {
fundId: (response === null || response === void 0 ? void 0 : response.fundId) || -1,
series: (response === null || response === void 0 ? void 0 : response.series) || [],
issuer: (response === null || response === void 0 ? void 0 : response.issuer) || '',
bussinesName: (response === null || response === void 0 ? void 0 : response.bussinesName) || '',
fundDateAuth: (response === null || response === void 0 ? void 0 : response.fundDateAuth) || '',
fundType: (response === null || response === void 0 ? void 0 : response.fundType) || '',
fundAssetClass: (response === null || response === void 0 ? void 0 : response.fundAssetClass) || '',
administrator: (response === null || response === void 0 ? void 0 : response.administrator) || '',
fundTerm: (response === null || response === void 0 ? void 0 : response.fundTerm) || '',
investmentRegime: (response === null || response === void 0 ? void 0 : response.investmentRegime) || '',
liquidity: (response === null || response === void 0 ? void 0 : response.liquidity) || '',
lockInPeriod: (response === null || response === void 0 ? void 0 : response.lockInPeriod) || '',
netAsset: response.netAsset || 0,
assetsUnderManagement: response.assetsUnderManagement || 0,
fundHoldings: (response === null || response === void 0 ? void 0 : response.fundHoldings) || 0,
marketRating: (response === null || response === void 0 ? void 0 : response.marketRating) || '',
creditRating: (response === null || response === void 0 ? void 0 : response.creditRating) || '',
fundManager: (response === null || response === void 0 ? void 0 : response.fundManager) || '',
active: response.active || -1,
closeTime: (response === null || response === void 0 ? void 0 : response.closeTime) || '',
};
});
}
getFundYield(request) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const params = {
issuer: request.issuer,
series: request.series,
date: (0, dayjs_1.default)(request.date).format('YYYY-MM-DD'),
};
const response = yield this.httpClient.get('/funds/yields', { params });
return {
annual: (response === null || response === void 0 ? void 0 : response.annualYield) || 0,
daily: (response === null || response === void 0 ? void 0 : response.dailyYield) || 0,
dailyAnnualized: (response === null || response === void 0 ? void 0 : response.dailyYieldAnnualized) || 0,
monthly: (response === null || response === void 0 ? void 0 : response.monthlyYield) || 0,
monthlyAnnualized: (response === null || response === void 0 ? void 0 : response.monthlyYieldAnnualized) || 0,
weekly: (response === null || response === void 0 ? void 0 : response.weeklyYield) || 0,
weeklyAnnualized: (response === null || response === void 0 ? void 0 : response.weeklyYieldAnnualized) || 0,
yearToDate: (response === null || response === void 0 ? void 0 : response.yearToDateYield) || 0,
yearToDateAnnualized: (response === null || response === void 0 ? void 0 : response.yearToDateYieldAnnualized) || 0,
};
});
}
getFundHistoricalPrices(request) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const params = {
issuer: request.issuer,
series: request.series,
period: request.period,
interval: request.interval,
};
const response = yield this.httpClient.get('/funds/historical-prices', { params });
const historicalPrices = (response === null || response === void 0 ? void 0 : response.historicalPrices) || [];
return historicalPrices.map(({ date, high, close, low }) => ({
date: date || '',
high: high || 0,
low: low || 0,
close: close || 0,
}));
});
}
}
exports.default = FundsDatasourceImpl;
//# sourceMappingURL=funds_datasource_impl.js.map