From b5e19030f1fabcda7375a70ea86bc8c3c3ea2e51 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Tue, 15 Sep 2020 11:08:39 -0700 Subject: [PATCH] sets up staging using http proxy. --- config/staging.edn | 2 + src/clj/auto_ap/yodlee/core.clj | 88 ++++++++++++++++++++------------- 2 files changed, 55 insertions(+), 35 deletions(-) diff --git a/config/staging.edn b/config/staging.edn index 16da9965..86a3cb3b 100644 --- a/config/staging.edn +++ b/config/staging.edn @@ -13,4 +13,6 @@ :yodlee-base-url "https://quickstart2.api.yodlee.com/ysl" :yodlee-app "10003600" :yodlee-fastlink "https://quickstartus2node.yodleeinteractive.com/authenticate/qstartus12/?channelAppName=quickstartus2" + :yodlee-proxy-host "172.31.10.83" + :yodlee-proxy-port 8888 } diff --git a/src/clj/auto_ap/yodlee/core.clj b/src/clj/auto_ap/yodlee/core.clj index 58898025..6cd17a5e 100644 --- a/src/clj/auto_ap/yodlee/core.clj +++ b/src/clj/auto_ap/yodlee/core.clj @@ -14,18 +14,25 @@ ([cob-session] (str "{cobSession=" cob-session "}")) ([cob-session user-session] (str "{cobSession=" cob-session ",userSession=" user-session "}"))) +(def other-config + (if (:yodlee-proxy-host env) + {:proxy-host (:yodlee-proxy-host env) + :proxy-port (:yodlee-proxy-port env)} + {})) + (def base-headers {"Api-Version" "1.1" "Cobrand-Name" (:yodlee-cobrand-name env) "Content-Type" "application/json"}) (defn login-cobrand [] (-> (str (:yodlee-base-url env) "/cobrand/login") - (client/post {:headers base-headers - :body - (json/write-str {:cobrand {:cobrandLogin (:yodlee-cobrand-login env) - :cobrandPassword (:yodlee-cobrand-password env) - :locale "en_US"}}) - :as :json} + (client/post (merge {:headers base-headers + :body + (json/write-str {:cobrand {:cobrandLogin (:yodlee-cobrand-login env) + :cobrandPassword (:yodlee-cobrand-password env) + :locale "en_US"}}) + :as :json} + other-config) ) :body :session @@ -36,12 +43,13 @@ ([cob-session] (login-user cob-session (:yodlee-user-login env) (:yodlee-user-password env))) ([cob-session user password] (-> (str (:yodlee-base-url env) "/user/login") - (client/post {:headers (merge base-headers {"Authorization" (auth-header cob-session)}) - :body - (json/write-str {:user {:loginName user - :password password - :locale "en_US"}}) - :as :json}) + (client/post (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session)}) + :body + (json/write-str {:user {:loginName user + :password password + :locale "en_US"}}) + :as :json} + other-config)) :body :user :session @@ -52,8 +60,9 @@ (let [cob-session (login-cobrand) user-session (login-user cob-session)] (-> (str (:yodlee-base-url env) "/accounts") - (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :as :json}) + (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :as :json} + other-config)) :body :account))) @@ -62,8 +71,9 @@ (let [cob-session (login-cobrand) user-session (login-user cob-session)] (-> (str (:yodlee-base-url env) "/accounts?providerAccountId=" provider-account-id) - (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :as :json}) + (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :as :json} + other-config)) :body :account)) (catch Exception e @@ -75,8 +85,9 @@ (let [cob-session (login-cobrand) user-session (login-user cob-session)] (-> (str (:yodlee-base-url env) (str "/accounts/" i)) - (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :as :json}) + (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :as :json} + other-config)) :body :account))) @@ -84,9 +95,10 @@ (let [cob-session (login-cobrand) user-session (login-user cob-session)] (-> (str (:yodlee-base-url env) "/providerAccounts") - (-> (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :query-params {"include" "credentials,questions,preferences"} - :as :json}) + (-> (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :query-params {"include" "credentials,questions,preferences"} + :as :json} + other-config)) :body :providerAccount)))) @@ -100,8 +112,9 @@ (-> (str (:yodlee-base-url env) "/transactions?top=" batch-size "&skip=" skip) - (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :as :json}) + (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :as :json} + other-config)) :body :transaction ))] @@ -120,8 +133,9 @@ (-> (str (:yodlee-base-url env) "/providerAccounts") - (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :as :json}) + (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :as :json} + other-config)) :body :providerAccount ))) @@ -135,8 +149,9 @@ (-> (str (:yodlee-base-url env) "/providerAccounts/" id) - (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :as :json}) + (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :as :json} + other-config)) :body :providerAccount))) @@ -147,9 +162,10 @@ (-> (str (:yodlee-base-url env) "/providerAccounts/" id ) - (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :query-params {"include" "credentials,preferences"} - :as :json}) + (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :query-params {"include" "credentials,preferences"} + :as :json} + other-config)) :body :providerAccount first))) @@ -161,9 +177,10 @@ (-> (str (:yodlee-base-url env) "/providerAccounts?providerAccountIds=" pa) - (client/put {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :body "{\"dataSetName\": [\"BASIC_AGG_DATA\"]}" - :as :json})))) + (client/put (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :body "{\"dataSetName\": [\"BASIC_AGG_DATA\"]}" + :as :json} + other-config))))) @@ -177,8 +194,9 @@ get-transaction-batch (fn [skip] (-> (str (:yodlee-base-url env) "/transactions?top=" batch-size "&skip=" skip "&accountId=" account) - (client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) - :as :json}) + (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)}) + :as :json} + other-config)) :body :transaction ))]