automated imports.

This commit is contained in:
BC
2018-06-14 23:16:10 -07:00
parent a17b6b9688
commit 80112d08a7
19 changed files with 458 additions and 71 deletions

View File

@@ -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)))))