User can set up sales queries on their own now.

This commit is contained in:
2022-04-07 08:22:50 -07:00
parent a4c823c9ff
commit 45cf97a480
7 changed files with 288 additions and 224 deletions

View File

@@ -24,50 +24,68 @@
(defn auth-header
([cob-session] (str "Bearer " cob-session)))
(defn retry-thrice
([x] (retry-thrice x 0))
([x i]
(try
(x)
(catch Exception e
(if (>= i 3)
(throw e)
(do
(Thread/sleep 5000)
(retry-thrice x (inc i))))))))
(def other-config
(if (:yodlee2-proxy-host env)
{:proxy-host (:yodlee2-proxy-host env)
:proxy-port (:yodlee2-proxy-port env)
:retry-handler (fn [ex try-count http-context]
:socket-timeout 60000
:connection-timeout 60000
:retry-handler (fn [ex _ _]
(log/error "yodlee Error." ex)
false)}
{:retry-handler (fn [ex try-count http-context]
{:retry-handler (fn [ex _ _]
(log/error "yodlee Error." ex)
false)}))
false)
:socket-timeout 60000
:connection-timeout 60000}))
(def base-headers {"Api-Version" "1.1"
"Content-Type" "application/json"})
(defn login-cobrand []
(-> (str (:yodlee2-base-url env) "/auth/token")
(client/post (merge {:headers (assoc base-headers
"loginName" (:yodlee2-admin-user env)
"Content-Type" "application/x-www-form-urlencoded")
:body (str "clientId=" (:yodlee2-client-id env) " &secret=" (:yodlee2-client-secret env))
:as :json}
other-config)
)
:body
:token
:accessToken))
(retry-thrice
(fn []
(-> (str (:yodlee2-base-url env) "/auth/token")
(client/post (merge {:headers (assoc base-headers
"loginName" (:yodlee2-admin-user env)
"Content-Type" "application/x-www-form-urlencoded")
:body (str "clientId=" (:yodlee2-client-id env) " &secret=" (:yodlee2-client-secret env))
:as :json}
other-config)
)
:body
:token
:accessToken))))
(defn login-user [client-code]
(log/info "logging in as " client-code)
(-> (str (:yodlee2-base-url env) "/auth/token")
(client/post (merge {:headers (assoc base-headers
"loginName" (if (<= (count client-code) 3)
(str client-code client-code)
client-code)
"Content-Type" "application/x-www-form-urlencoded")
:body (str "clientId=" (:yodlee2-client-id env) " &secret=" (:yodlee2-client-secret env))
:as :json}
other-config)
)
:body
:token
:accessToken))
(retry-thrice
(fn []
(log/info "logging in as " client-code)
(-> (str (:yodlee2-base-url env) "/auth/token")
(client/post (merge {:headers (assoc base-headers
"loginName" (if (<= (count client-code) 3)
(str client-code client-code)
client-code)
"Content-Type" "application/x-www-form-urlencoded")
:body (str "clientId=" (:yodlee2-client-id env) " &secret=" (:yodlee2-client-secret env))
:as :json}
other-config)
)
:body
:token
:accessToken))))
(defn get-accounts [client-code ]
(let [cob-session (login-user (client-code->login client-code))]
@@ -93,14 +111,16 @@
[])))
(defn get-provider-accounts [client-code ]
(log/info "logging in user " client-code)
(let [cob-session (login-user (client-code->login client-code))]
(-> (str (:yodlee2-base-url env) "/providerAccounts")
(-> (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session )})
:as :json}
other-config))
:body
:providerAccount))))
(retry-thrice
(fn []
(log/info "logging in user " client-code)
(let [cob-session (login-user (client-code->login client-code))]
(-> (str (:yodlee2-base-url env) "/providerAccounts")
(-> (client/get (merge {:headers (merge base-headers {"Authorization" (auth-header cob-session )})
:as :json}
other-config))
:body
:providerAccount))))))
@@ -323,7 +343,6 @@
(defn reauthenticate [client-code pa data]
(println client-code)
(try
(-> (str (:yodlee2-base-url env) "/providerAccounts?providerAccountIds=" pa)