added ability to see existing accounts.
This commit is contained in:
@@ -12,16 +12,7 @@
|
||||
[auto-ap.routes :as routes]
|
||||
[bidi.bidi :as bidi]))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::authenticate-with-yodlee
|
||||
(fn [{:keys [db]} _]
|
||||
{:db (assoc-in db [::yodlee :loading?] true)
|
||||
:http {:token (:user db)
|
||||
:method :get
|
||||
:headers {"Content-Type" "application/edn"}
|
||||
:uri (str "/api/yodlee/fastlink")
|
||||
:on-success [::authenticated]
|
||||
:on-error [::save-error]}}))
|
||||
|
||||
|
||||
(re-frame/reg-sub
|
||||
::authentication
|
||||
@@ -33,6 +24,44 @@
|
||||
(fn [db]
|
||||
(-> db ::yodlee :loading?)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::accounts
|
||||
(fn [db]
|
||||
(-> db ::yodlee :accounts)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::accounts-loading?
|
||||
(fn [db]
|
||||
(-> db ::yodlee :accounts-loading?)))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::authenticate-with-yodlee
|
||||
(fn [{:keys [db]} _]
|
||||
{:db (assoc-in db [::yodlee :loading?] true)
|
||||
:http {:token (:user db)
|
||||
:method :get
|
||||
:headers {"Content-Type" "application/edn"}
|
||||
:uri (str "/api/yodlee/fastlink")
|
||||
:on-success [::authenticated]
|
||||
:on-error [::save-error]}}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::mounted
|
||||
(fn [{:keys [db]} _]
|
||||
{:db (assoc-in db [::yodlee] {:accounts-loading? true})
|
||||
:http {:token (:user db)
|
||||
:method :get
|
||||
:headers {"Content-Type" "application/edn"}
|
||||
:uri (str "/api/yodlee/accounts")
|
||||
:on-success [::got-accounts]
|
||||
:on-error [::save-error]}}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::got-accounts
|
||||
(fn [{:keys [db]} [_ accounts]]
|
||||
{:db (-> db
|
||||
(assoc-in [::yodlee :accounts] accounts)
|
||||
(assoc-in [::yodlee :accounts-loading?] false))}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::authenticated
|
||||
@@ -43,32 +72,58 @@
|
||||
|
||||
|
||||
|
||||
(defn admin-yodlee-page []
|
||||
(defn yodlee-link-button []
|
||||
[:div
|
||||
(let [authentication @(re-frame/subscribe [::authentication])
|
||||
loading? @(re-frame/subscribe [::loading?])]
|
||||
|
||||
[:div
|
||||
[:h1.title "Yodlee"]
|
||||
(if authentication
|
||||
[:div
|
||||
"Authentication successful!"
|
||||
[:form {:action (:url authentication) :method "POST"}
|
||||
[:input {:type "hidden"
|
||||
:name "rsession"
|
||||
:value (:session authentication)}]
|
||||
[:input {:type "hidden"
|
||||
:name "token"
|
||||
:value (:token authentication)}]
|
||||
[:input {:type "hidden"
|
||||
:name "app"
|
||||
:value (:app authentication)}]
|
||||
(if authentication
|
||||
[:div
|
||||
"Authentication successful!"
|
||||
[:form {:action (:url authentication) :method "POST"}
|
||||
[:input {:type "hidden"
|
||||
:name "rsession"
|
||||
:value (:session authentication)}]
|
||||
[:input {:type "hidden"
|
||||
:name "token"
|
||||
:value (:token authentication)}]
|
||||
[:input {:type "hidden"
|
||||
:name "app"
|
||||
:value (:app authentication)}]
|
||||
|
||||
[:input {:type "hidden"
|
||||
:name "redirectReq"
|
||||
:value "true"}]
|
||||
[:button.button.is-primary [:span [:span.icon [:i.fa.fa-external-link]] " Go to yodlee"]]]]
|
||||
[:input {:type "hidden"
|
||||
:name "redirectReq"
|
||||
:value "true"}]
|
||||
[:button.button.is-primary [:span [:span.icon [:i.fa.fa-external-link]] " Go to yodlee"]]]]
|
||||
|
||||
[:button.button.is-primary {:class (if loading? "is-loading" "") :on-click (dispatch-event [::authenticate-with-yodlee])} "Authenticate with Yodlee"]))])
|
||||
|
||||
(defn yodlee-accounts-table []
|
||||
|
||||
[:div
|
||||
[:table.table
|
||||
[:thead
|
||||
[:tr
|
||||
[:th "Account Name"]
|
||||
[:th "Account Number"]
|
||||
[:th "Yodlee Account Number"]]]
|
||||
(if @(re-frame/subscribe [::accounts-loading?])
|
||||
[:tr [:td {:col-span "3"} "Loading..."]
|
||||
]
|
||||
(for [account @(re-frame/subscribe [::accounts])]
|
||||
[:tr
|
||||
[:td (:accountName account)]
|
||||
[:td (:accountNumber account)]
|
||||
[:td (:id account)]]))]])
|
||||
|
||||
|
||||
(defn admin-yodlee-page []
|
||||
[(with-meta
|
||||
(fn []
|
||||
[:div
|
||||
[:h1.title "Yodlee"]
|
||||
|
||||
[:button.button.is-primary {:class (if loading? "is-loading" "") :on-click (dispatch-event [::authenticate-with-yodlee])} "Authenticate with Yodlee"])
|
||||
|
||||
])])
|
||||
[yodlee-accounts-table]
|
||||
[yodlee-link-button]])
|
||||
{:component-did-mount (fn []
|
||||
(re-frame/dispatch [::mounted]))})])
|
||||
|
||||
Reference in New Issue
Block a user