UNPKG

json-object-editor

Version:

JOE the Json Object Editor | Platform Edition

71 lines (59 loc) 2.02 kB
// import { Configuration, PlaidApi, PlaidEnvironments } from 'plaid'; function Money() { const plaid = require('plaid'); var self = this; var plaidClient; var ACCESS_TOKEN = ""; var PUBLIC_TOKEN = null; var ACCESS_TOKENS; function initPlaidClient() { //console.log('plaidinit',plaidClient); if(plaidClient){ return;} logit('initializing plaid client') try { const configuration = new Configuration({ basePath: PlaidEnvironments.development, baseOptions: { headers: { 'PLAID-CLIENT-ID': CLIENT_ID, 'PLAID-SECRET': SECRET, }, }, }); var client_id = JOE.Cache.settings.PLAID_CLIENTID; var secret = JOE.Cache.settings.PLAID_SECRET_development; var public_key = JOE.Cache.settings.PLAID_PUBLIC_KEY; ACCESS_TOKENS = JOE.Cache.settings.PLAID_ACCESS_TOKENS && JSON.parse(JOE.Cache.settings.PLAID_ACCESS_TOKENS); //console.log(ACCESS_TOKENS); configuration.headers={ 'PLAID-CLIENT-ID': client_id, 'PLAID-SECRET': secret, } plaidClient = new PlaidApi(configuration); return true; } catch (e) { logit("plaid client init error",e); return e; } } this.LinkTest = async function(data, request, response){ initPlaidClient(); const pResponse = await plaidClient.itemPublicTokenExchange({ public_token }); const access_token = pResponse.data.access_token; const accounts_response = await plaidClient.accountsGet({ access_token }); const accounts = accounts_response.data.accounts; response.jsonp({ error: false,accounts }); return { use_callback: true }; } this.default = function(data, req, res) { res.jsonp({ data: data }); return { use_callback: true }; }; this.html = function(data, req) { logit('html route') return JSON.stringify(self.default(data, req), "", "\t\r\n <br/>"); }; this.protected = []; return self; } module.exports = new Money();