Adds the ability for intuit snapshot balance
This commit is contained in:
@@ -654,6 +654,14 @@
|
|||||||
:db/cardinality #:db{:ident :db.cardinality/one},
|
:db/cardinality #:db{:ident :db.cardinality/one},
|
||||||
:db/doc "Name of intuit bank",
|
:db/doc "Name of intuit bank",
|
||||||
:db/ident :intuit-bank-account/name}
|
:db/ident :intuit-bank-account/name}
|
||||||
|
{ :db/valueType :db.type/double,
|
||||||
|
:db/cardinality :db.cardinality/one
|
||||||
|
:db/doc "Quickbook's view of the balance of the account",
|
||||||
|
:db/ident :intuit-bank-account/current-balance}
|
||||||
|
{ :db/valueType :db.type/instant
|
||||||
|
:db/cardinality :db.cardinality/one
|
||||||
|
:db/doc "Last time Quickbooks updated",
|
||||||
|
:db/ident :intuit-bank-account/last-synced}
|
||||||
|
|
||||||
{:db/unique #:db{:ident :db.unique/identity},
|
{:db/unique #:db{:ident :db.unique/identity},
|
||||||
:db/valueType #:db{:ident :db.type/long},
|
:db/valueType #:db{:ident :db.type/long},
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
(ns auto-ap.import.intuit
|
(ns auto-ap.import.intuit
|
||||||
(:require
|
(:require [auto-ap.datomic :refer [conn]]
|
||||||
[auto-ap.datomic :refer [conn pull-attr]]
|
[auto-ap.import.common :refer [wrap-integration]]
|
||||||
[auto-ap.import.common :refer [wrap-integration]]
|
[auto-ap.import.transactions :as t]
|
||||||
[auto-ap.import.transactions :as t]
|
[auto-ap.intuit.core :as i]
|
||||||
[auto-ap.intuit.core :as i]
|
[auto-ap.logging :as alog]
|
||||||
[auto-ap.logging :as alog]
|
[auto-ap.time :as atime]
|
||||||
[auto-ap.time :as atime]
|
[clj-time.coerce :as coerce]
|
||||||
[clj-time.coerce :as coerce]
|
[clj-time.core :as time]
|
||||||
[clj-time.core :as time]
|
[clojure.string :as str]
|
||||||
[clojure.string :as str]
|
[com.unbounce.dogstatsd.core :as statsd]
|
||||||
[com.unbounce.dogstatsd.core :as statsd]
|
[datomic.api :as dc]
|
||||||
[datomic.api :as dc]))
|
[iol-ion.utils :refer [remove-nils]]))
|
||||||
|
|
||||||
(defn get-intuit-bank-accounts
|
(defn get-intuit-bank-accounts
|
||||||
( [db]
|
( [db]
|
||||||
@@ -90,6 +90,10 @@
|
|||||||
bank-accounts (i/get-bank-accounts token)]
|
bank-accounts (i/get-bank-accounts token)]
|
||||||
@(dc/transact conn (mapv
|
@(dc/transact conn (mapv
|
||||||
(fn [ba]
|
(fn [ba]
|
||||||
{:intuit-bank-account/external-id (:name ba)
|
(remove-nils
|
||||||
:intuit-bank-account/name (:name ba)})
|
{:intuit-bank-account/external-id (:name ba)
|
||||||
|
:intuit-bank-account/name (:name ba)
|
||||||
|
:intuit-bank-account/last-synced (coerce/to-date (:last-updated ba))
|
||||||
|
:intuit-bank-account/current-balance (:current-balance ba)}))
|
||||||
bank-accounts))))
|
bank-accounts))))
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
(ns auto-ap.intuit.core
|
(ns auto-ap.intuit.core
|
||||||
(:require
|
(:require [amazonica.aws.s3 :as s3]
|
||||||
[amazonica.aws.s3 :as s3]
|
[clj-http.client :as client]
|
||||||
[clj-http.client :as client]
|
[clj-time.coerce :as c]
|
||||||
[clojure.core.memoize :as m]
|
[clojure.core.memoize :as m]
|
||||||
[clojure.java.io :as io]
|
[clojure.java.io :as io]
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
[config.core :as cfg :refer [env]])
|
[config.core :as cfg :refer [env]])
|
||||||
(:import
|
(:import (org.apache.commons.codec.binary Base64)))
|
||||||
(org.apache.commons.codec.binary Base64)))
|
|
||||||
|
|
||||||
;; (def authorization-code "AB11638463964I0tYPR3A1inog2HL407u2bZBXHg6LEqCbILRO")
|
;; (def authorization-code "AB11638463964I0tYPR3A1inog2HL407u2bZBXHg6LEqCbILRO")
|
||||||
;; (def realm-id "4620816365202617680")
|
;; (def realm-id "4620816365202617680")
|
||||||
@@ -98,6 +97,13 @@
|
|||||||
{:headers base-headers
|
{:headers base-headers
|
||||||
:as :json})
|
:as :json})
|
||||||
|
|
||||||
|
(defn get-bank-accounts-raw [token]
|
||||||
|
(->> (:body (client/get (str prod-base-url "/company/" prod-company-id "/query" )
|
||||||
|
{:headers
|
||||||
|
(with-auth prod-base-headers token)
|
||||||
|
:as :json
|
||||||
|
:query-params {"query" "SELECT * From Account maxresults 1000"}}))
|
||||||
|
:QueryResponse))
|
||||||
|
|
||||||
|
|
||||||
(defn get-bank-accounts [token]
|
(defn get-bank-accounts [token]
|
||||||
@@ -110,10 +116,13 @@
|
|||||||
:Account
|
:Account
|
||||||
#_(filter
|
#_(filter
|
||||||
#(#{"Bank" "Credit Card"} (:AccountType %)))
|
#(#{"Bank" "Credit Card"} (:AccountType %)))
|
||||||
(map (juxt :Id :Name))
|
(map (juxt :Id :Name :CurrentBalance :MetaData))
|
||||||
(map (fn [[id name]]
|
(map (fn [[id name current-balance metadata]]
|
||||||
{:id id
|
{:id id
|
||||||
:name name}))))
|
:name name
|
||||||
|
:last-updated (c/to-date-time (-> metadata :LastUpdatedTime))
|
||||||
|
:current-balance current-balance}))))
|
||||||
|
|
||||||
|
|
||||||
(defn get-all-transactions [start end]
|
(defn get-all-transactions [start end]
|
||||||
(let [token (get-fresh-access-token)]
|
(let [token (get-fresh-access-token)]
|
||||||
|
|||||||
@@ -132,6 +132,7 @@
|
|||||||
request
|
request
|
||||||
(com/page {:nav com/company-aside-nav
|
(com/page {:nav com/company-aside-nav
|
||||||
:client-selection (:client-selection request)
|
:client-selection (:client-selection request)
|
||||||
|
:request request
|
||||||
:client (:client request)
|
:client (:client request)
|
||||||
:clients (:clients request)
|
:clients (:clients request)
|
||||||
:identity (:identity request)
|
:identity (:identity request)
|
||||||
|
|||||||
Reference in New Issue
Block a user