Skip to content

Instantly share code, notes, and snippets.

@br3nt
Last active August 12, 2017 08:53
Show Gist options
  • Select an option

  • Save br3nt/03b028befc731aab553abb1d409e3bfc to your computer and use it in GitHub Desktop.

Select an option

Save br3nt/03b028befc731aab553abb1d409e3bfc to your computer and use it in GitHub Desktop.
Open Bank Project API data
let base_url = 'https://apc.openbankproject.com';
let direct_login_endpoint = 'https://apc.openbankproject.com/my/logins/direct';
let api_base_url = 'https://apc.openbankproject.com/obp/v3.0.0';
let username = 'br3nt';
let password = 'password123456789';
let consumer_key = '4gvswztl1pbqyijiv4dffnhnvpyneiye43ekcno0';
let consumer_secret = 'ji5tnnxfywllhr24fgcdj3j5ycy4guywatflgtps';
var token = null;
// get token
var get_authorization_token = async function(direct_login_endpoint, username, password, consumer_key) {
if (token) return token;
var auth_headers = new Headers();
auth_headers.append("Content-Type", "application/json");
auth_headers.append("Accept", "application/json");
auth_headers.append("Authorization", `DirectLogin username="${username}", password="${password}", consumer_key="${consumer_key}"`);
var response = await fetch(direct_login_endpoint, { method: 'POST', headers: auth_headers });
var data = await response.json();
return data.token;
};
// get the token
(async() => {
try {
token = await get_authorization_token(direct_login_endpoint, username, password, consumer_key);
console.log(token);
} catch (e) {
console.log(e)
}
})();
// generic bank
var get = async function(path) {
var auth_headers = new Headers();
auth_headers.append("Content-Type", "application/json");
auth_headers.append("Accept", "application/json");
auth_headers.append("Authorization", `DirectLogin token="${token}"`);
var response = await fetch(path, { headers: auth_headers });
var data = await response.json();
return data;
}
var get_banks = async () => get(`${api_base_url}/banks`);
var get_public_accounts = async (bank_id) => get(`${api_base_url}/banks/${bank_id}/accounts/public`)
var banks;
var accounts;
var bank_ids;
var banks_accounts;
// get banks
(async() => {
try {
data = await get_banks();
banks = data["banks"];
//console.log(banks);
//this doesnt work yet!!!
bank_accounts_promises = banks.map(({ id }) => { console.log(get_public_accounts(id)) });
//banks_accounts = await Promise.all(bank_accounts_promises);
console.log(banks_accounts);
} catch (e) {
console.log(e)
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment