automated imports.
This commit is contained in:
@@ -1,30 +1,60 @@
|
||||
(ns auto-ap.yodlee.import
|
||||
(:require [auto-ap.yodlee.core :as client]
|
||||
[auto-ap.db.yodlee-imports :as yodlee-imports]
|
||||
[auto-ap.db.transactions :as transactions]
|
||||
[auto-ap.db.vendors :as vendors]
|
||||
[auto-ap.db.companies :as companies]
|
||||
[auto-ap.db.checks :as checks]
|
||||
[auto-ap.time :as time]))
|
||||
|
||||
(defn account->company-id [account-id]
|
||||
(-> (companies/get-all)
|
||||
first
|
||||
:id))
|
||||
|
||||
(defn transaction->vendor-id [_]
|
||||
(-> (vendors/get-all)
|
||||
first
|
||||
:id))
|
||||
|
||||
(defn transaction->check-id [_ company-id vendor-id]
|
||||
(when (= 0 (rand-int 2))
|
||||
(-> (checks/get-graphql {:company-id company-id
|
||||
:vendor-id vendor-id})
|
||||
first
|
||||
:id)))
|
||||
|
||||
(defn do-import []
|
||||
(doseq [transaction (client/get-transactions)
|
||||
:let [{post-date :postDate
|
||||
account-id :accountId
|
||||
date :date
|
||||
id :id
|
||||
{amount :amount} :amount
|
||||
{description-original :original
|
||||
description-simple :simple} :description
|
||||
{merchant-id :i
|
||||
merchant-name :name} :merchant
|
||||
type :type
|
||||
status :status
|
||||
}
|
||||
transaction]]
|
||||
(yodlee-imports/upsert!
|
||||
{:post-date (time/parse post-date "YYYY-MM-dd")
|
||||
:id id
|
||||
:account-id account-id
|
||||
:date (time/parse date "YYYY-MM-dd")
|
||||
:amount amount
|
||||
:description-original description-original
|
||||
:description-simple description-simple
|
||||
:type type
|
||||
:status status})))
|
||||
:let [{post-date :postDate
|
||||
account-id :accountId
|
||||
date :date
|
||||
id :id
|
||||
{amount :amount} :amount
|
||||
{description-original :original
|
||||
description-simple :simple} :description
|
||||
{merchant-id :i
|
||||
merchant-name :name} :merchant
|
||||
type :type
|
||||
status :status}
|
||||
transaction
|
||||
company-id (account->company-id account-id)
|
||||
vendor-id (transaction->vendor-id transaction)]
|
||||
]
|
||||
|
||||
(try
|
||||
(transactions/upsert!
|
||||
{:post-date (time/parse post-date "YYYY-MM-dd")
|
||||
:id id
|
||||
:account-id account-id
|
||||
:date (time/parse date "YYYY-MM-dd")
|
||||
:amount amount
|
||||
:description-original description-original
|
||||
:description-simple description-simple
|
||||
:type type
|
||||
:status status
|
||||
:company-id company-id
|
||||
:vendor-id vendor-id
|
||||
:check-id (transaction->check-id transaction company-id vendor-id)
|
||||
})
|
||||
(catch Exception e
|
||||
(println e)))))
|
||||
|
||||
Reference in New Issue
Block a user