starling_helper
Version:
A helper library for starling
121 lines (109 loc) • 4.29 kB
JavaScript
;
let apiKey = '';
let params = {};
const constants = require('./constants');
const data = require('./getData');
exports.init = (_apiKey) => {
apiKey = _apiKey;
};
exports.params = (_params) => {
params = _params;
};
exports.getData = async(requestType) => {
let todayDate;
let fDate;
switch (requestType) {
case constants.GETACCOUNTS:
return data.getData(apiKey, 'accounts');
case constants.GETACCOUNTBALANCES:
return data.getData(apiKey, 'accounts/balance');
case constants.GETADDRESSES:
return data.getData(apiKey, 'addresses');
case constants.GETCONTACTS:
return data.getData(apiKey, 'contacts');
case constants.GETCONTACTBYID:
return data.getData(apiKey, `contacts/${params.contactID}`);
case constants.GETCONTACTACCOUNTS:
return data.getData(apiKey, `contacts/${params.contactID}/accounts`);
case constants.GETCONTACTACCOUNTSBYID:
return data.getData(apiKey, `contacts/${params.contactID}/accounts/${params.contactAccountID}`);
case constants.GETCUSTOMERS:
return data.getData(apiKey, 'customers');
case constants.GETDIRECTDEBITMANDATES:
return data.getData(apiKey, 'direct-debit/mandates');
case constants.GETDIRECTDEBITMANDATESBYUID:
return data.getData(apiKey, `direct-debit/mandates/${params.mandateUID}`);
case constants.GETME:
return data.getData(apiKey, 'me');
case constants.GETCARDS:
return data.getData(apiKey, 'cards');
case constants.TRANSACTIONSDAY:
todayDate = new Date().toISOString().slice(0, 10);
return data.getData(apiKey, `transactions?from=${todayDate}&to=${todayDate}`);
case constants.TRANSACTIONSWEEK:
const dayOfWeek = new Date().getDay();
let daysSinceMonday;
switch (dayOfWeek) {
case 0:
daysSinceMonday = 6;
break;
case 1:
daysSinceMonday = 0;
break;
case 2:
daysSinceMonday = 1;
break;
case 3:
daysSinceMonday = 2;
break;
case 4:
daysSinceMonday = 3;
break;
case 5:
daysSinceMonday = 4;
break;
case 6:
daysSinceMonday = 5;
break;
}
todayDate = new Date().toISOString().slice(0, 10);
fDate = new Date();
fDate.setDate(fDate.getDate() - daysSinceMonday);
fDate = fDate.toISOString().slice(0, 10);
return data.getData(apiKey, `transactions?from=${fDate}&to=${todayDate}`);
case constants.TRANSACTIONMONTH:
todayDate = new Date().toISOString().slice(0, 10);
let mDate = new Date().getMonth();
mDate = mDate + 1;
if (mDate < 10) {
mDate = '0' + mDate;
}
fDate = `${new Date().getFullYear()}-${mDate}-01`;
return data.getData(apiKey, `transactions?from=${fDate}&to=${todayDate}`);
case constants.TRANSACTIONYEAR:
todayDate = new Date().toISOString().slice(0, 10);
const year = new Date().getFullYear();
fDate = `${year}-01-01`;
return data.getData(apiKey, `transactions?from=${fDate}&to=${todayDate}`);
case constants.TRANSACTIONALL:
return data.getData(apiKey, 'transactions');
case constants.GETPAYMENTS:
return data.getData(apiKey, 'payments/scheduled');
case constants.GETMERCHANT:
return data.getData(apiKey, `merchants/${params.merchantID}`);
case constants.GETMERCHANTLOCATION:
return data.getData(apiKey, `merchants/${params.merchantID}/locations/${params.merchantLocationID}`);
case constants.GETALLSAVINGGOALS:
return data.getData(apiKey, 'savings-goals');
case constants.GETGOALBYID:
return data.getData(apiKey, `savings-goals/${params.savingsGoalID}`);
case constants.GETGOALSRECURRINGTRANSFERS:
return data.getData(apiKey, `savings-goals/${params.savingsGoalID}/recurring-transfer`);
case constants.GETGOALPHOTO:
return data.getData(apiKey, `savings-goals/${params.savingsGoalID}/photo`);
default:
return new Promise((ignore, reject) => {
reject(requestType + ' is not a valid end point');
});
}
};