Makes logging unified
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
(ns auto-ap.yodlee.core2
|
||||
(:require [clj-http.client :as client]
|
||||
[auto-ap.utils :refer [by]]
|
||||
[unilog.context :as lc]
|
||||
[clojure.tools.logging :as log]
|
||||
[auto-ap.logging :as alog]
|
||||
[clojure.data.json :as json]
|
||||
[clojure.core.async :as async]
|
||||
[config.core :refer [env]]
|
||||
@@ -11,11 +10,11 @@
|
||||
#_{:clj-kondo/ignore [:unused-namespace]}
|
||||
[yang.scheduler :as scheduler]
|
||||
[clj-time.coerce :as coerce]
|
||||
[com.brunobonacci.mulog :as mu]
|
||||
[datomic.api :as dc]
|
||||
[auto-ap.datomic :refer [conn]]
|
||||
[auto-ap.datomic.clients :as d-clients]
|
||||
[clojure.string :as str]
|
||||
[auto-ap.logging :as alog]))
|
||||
[clojure.string :as str]))
|
||||
;; switch all of this to use tokens instead of passing around client codes, particularly because the codes
|
||||
;; need to be tweaked for repeats
|
||||
(defn client-code->login [client-code]
|
||||
@@ -45,10 +44,10 @@
|
||||
:socket-timeout 60000
|
||||
:connection-timeout 60000
|
||||
:retry-handler (fn [ex _ _]
|
||||
(log/error "yodlee Error." ex)
|
||||
(alog/error ::error :error ex)
|
||||
false)}
|
||||
{:retry-handler (fn [ex _ _]
|
||||
(log/error "yodlee Error." ex)
|
||||
(alog/error ::error :error ex)
|
||||
false)
|
||||
:socket-timeout 60000
|
||||
:connection-timeout 60000}))
|
||||
@@ -74,7 +73,7 @@
|
||||
(defn login-user [client-code]
|
||||
(retry-thrice
|
||||
(fn []
|
||||
(log/info "logging in as " client-code)
|
||||
(alog/info ::logging-in :client client-code)
|
||||
(-> (str (:yodlee2-base-url env) "/auth/token")
|
||||
(client/post (merge {:headers (assoc base-headers
|
||||
"loginName" (if (:yodlee2-test-user env)
|
||||
@@ -111,14 +110,14 @@
|
||||
:body
|
||||
:account))
|
||||
(catch Exception e
|
||||
(log/error (str "Couldn't get accounts for provider account '" provider-account-id "'")
|
||||
e)
|
||||
(alog/error ::error
|
||||
:error e)
|
||||
[])))
|
||||
|
||||
(defn get-provider-accounts [client-code ]
|
||||
(retry-thrice
|
||||
(fn []
|
||||
(log/info "logging in user " client-code)
|
||||
(alog/info ::logging-in :client 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 )})
|
||||
@@ -258,16 +257,15 @@
|
||||
(async/pipeline-blocking concurrent
|
||||
output-chan
|
||||
(map (fn [provider-account]
|
||||
(lc/with-context {:provider-account-id (:id provider-account)}
|
||||
(mu/with-context {:provider-account-id (:id provider-account)}
|
||||
(get-provider-account-detail client-code (:id provider-account)))))
|
||||
(async/to-chan! provider-accounts))
|
||||
(async/<!! (async/into [] output-chan))))
|
||||
|
||||
(defn get-accounts-for-providers [client-code provider-account-ids]
|
||||
(log/info "looking up " (count provider-account-ids) " provider accounts's accounts for client " client-code ".")
|
||||
(into {}
|
||||
(mapv (fn [provider-account-id]
|
||||
(lc/with-context {:provider-account-id provider-account-id}
|
||||
(mu/with-context {:provider-account-id provider-account-id}
|
||||
[provider-account-id
|
||||
(get-accounts-for-provider-account client-code provider-account-id)]))
|
||||
provider-account-ids)))
|
||||
@@ -323,7 +321,9 @@
|
||||
provider-accounts))))
|
||||
|
||||
(defn refresh-provider-account [client-code id]
|
||||
(log/info "refreshing yodlee provider account id" id)
|
||||
(alog/info ::refreshing
|
||||
:client client-code
|
||||
:provider-acconut-id id)
|
||||
@(dc/transact conn (upsert-accounts-tx client-code
|
||||
[(get-provider-account client-code id)])))
|
||||
|
||||
@@ -333,16 +333,16 @@
|
||||
(async/pipeline-blocking concurrent
|
||||
output-chan
|
||||
(mapcat (fn [client]
|
||||
(log/info "Upserting Yodlee Accounts for " (:client/code client))
|
||||
(lc/with-context {:client-code (:client/code client)}
|
||||
(alog/info ::upserting-accounts
|
||||
:client (:client/code client))
|
||||
(mu/with-context {:client-code (:client/code client)}
|
||||
(try
|
||||
(upsert-accounts-tx (:client/code client))
|
||||
(catch Exception e
|
||||
(log/error "Could not update client " (:client/code client)
|
||||
e))))))
|
||||
(alog/error ::error :error e :client (:client/code client)))))))
|
||||
(async/to-chan! (d-clients/get-all)))
|
||||
(let [result (async/<!! (async/into [] output-chan))]
|
||||
(log/info "Current yodlee state is " result)
|
||||
(alog/info ::state :state result)
|
||||
@(dc/transact conn result))))
|
||||
|
||||
|
||||
@@ -357,7 +357,7 @@
|
||||
:as :json}
|
||||
other-config)))
|
||||
(catch Exception e
|
||||
(log/error e))) )
|
||||
(alog/error ::error :error e))) )
|
||||
|
||||
(defn reauthenticate-and-recache [client-code pa data]
|
||||
(reauthenticate client-code pa data)
|
||||
|
||||
Reference in New Issue
Block a user