UNPKG

@infosel-sdk/funds

Version:

SDK de Fondos para la plataforma de servicios financieros Infosel

103 lines 6.8 kB
"use strict"; 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