ghana-bank-sort-codes-api
Version:
This library gets all Ghana Banks Sort codes via web scrapping from _The Ghana Interbank Payment and Settlement Systems_
74 lines (67 loc) • 1.82 kB
JavaScript
const data = require("../json/banksData.json");
const { SORT_CODE_NOT_FOUND } = require("../constants");
class GhanaBank {
constructor() {
this.data = data;
}
/**
* [getGhanaBanksList description]
* @return Array [description]
*/
getGhanaBanksList() {
const banks = [];
this.data.map(bank => {
if (bank.bank && !Number.isInteger(Number(bank.bank))) {
banks.push(bank.bank);
} else if (Number.isInteger(Number(bank.bank))) {
banks.push(bank.sort_code);
}
});
return [...new Set(banks)];
}
/**
* [fetchBankSortCodes description]
* @param {[type]} bankName [description]
* @return Array [description]
*/
fetchBankSortCodes(bankName) {
const bankBranches = [];
this.data.map(bank => {
if (
bank.bank === bankName.toUpperCase() ||
bank.sort_code === bankName.toUpperCase()
) {
bankBranches.push(bank);
}
});
return bankBranches;
}
/**
* [fetchBankBranchSortCode description]
* @param {[type]} bankName [description]
* @param {[type]} branchName [description]
* @return Integer [description]
*/
fetchBankBranchSortCode(bankName, branchName) {
let sortCode = SORT_CODE_NOT_FOUND;
if (!bankName || !branchName) {
return sortCode;
}
// const banksData = await this.asyncBanksData;
this.data.map(bank => {
if (bank.bank) {
if (
(bank.bank === bankName.toUpperCase() ||
bank.sort_code === bankName.toUpperCase()) &&
bank.branch_name.includes(branchName.toUpperCase())
) {
sortCode = Number.isInteger(Number(bank.sort_code))
? bank.sort_code
: bank.bank;
}
}
});
return sortCode;
}
}
module.exports = new GhanaBank();