UNPKG

open-banking-pfm-sdk

Version:

The Open Banking PFM SDK uses Client classes and with **Promises** to get responses from the Open Banking PFM API in an easier way and structured as data models.

56 lines (55 loc) 2.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildClients = exports.processErrors = exports.parseDateTextToUnix = exports.parseDateToUnix = void 0; const clients_1 = require("./clients"); const models_1 = require("./models"); const createErrorList = (errorResponse) => { const errorsList = []; errorResponse.errors.forEach((error) => { errorsList.push(new models_1.Error(error.code, error.title, error.detail)); }); return errorsList; }; const createErrorItem = (status, title, message) => { return new models_1.Error(`${status}`, title, message || ''); }; const createErrorObject = (error) => { return new models_1.Error(`${error.code || '0'}`, 'Error System', `${error}`); }; const parseDateToUnix = (date) => date.getTime(); exports.parseDateToUnix = parseDateToUnix; const parseDateTextToUnix = (dateText) => { const date = new Date(dateText); return (0, exports.parseDateToUnix)(date); }; exports.parseDateTextToUnix = parseDateTextToUnix; const processErrors = (error, reject) => { if (error.response) { if (error.response.status === 500) { return reject(createErrorItem(error.response.status, error.response.data.message, error.response.data.message)); } if (error.response.status === 401) { return reject(createErrorItem(error.response.status, error.response.statusText)); } if (error.response.status === 404) { return reject(createErrorItem(error.response.status, 'Unauthorized')); } if (error.response.status === 400) { return reject(createErrorList(error.response.data)); } } return reject(createErrorObject(error)); }; exports.processErrors = processErrors; const buildClients = ({ apiKey, serverUrl, assetsUrl }) => ({ accountsClient: new clients_1.AccountsClient({ apiKey, serverUrl, assetsUrl }), banksClient: new clients_1.BanksClient({ apiKey, serverUrl, assetsUrl }), budgetsClient: new clients_1.BudgetsClient({ apiKey, serverUrl, assetsUrl }), categoriesClient: new clients_1.CategoriesClient({ apiKey, serverUrl, assetsUrl }), insightsClient: new clients_1.InsightsClient({ apiKey, serverUrl, assetsUrl }), transactionsClient: new clients_1.TransactionsClient({ apiKey, serverUrl, assetsUrl }), usersClient: new clients_1.UsersClient({ apiKey, serverUrl, assetsUrl }), consentsClient: new clients_1.ConsentsClient({ apiKey, serverUrl, assetsUrl }), creditsClient: new clients_1.CreditsClient({ apiKey, serverUrl, assetsUrl }) }); exports.buildClients = buildClients;