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
JavaScript
;
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;