diff --git a/docker-compose.yml b/docker-compose.yml index a9bf08c7..85ebcecf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,8 +31,6 @@ services: POSTGRES_USER: ap POSTGRES_PASSWORD: fifteen-invoices-imported! POSTGRES_DB: autoap - ports: - - "5432:5432" volumes: - ./data/var/lib/postgresql/data:/var/lib/postgresql/data migrator: diff --git a/src/clj/auto_ap/routes/invoices.clj b/src/clj/auto_ap/routes/invoices.clj index 48611926..ec150c87 100644 --- a/src/clj/auto_ap/routes/invoices.clj +++ b/src/clj/auto_ap/routes/invoices.clj @@ -103,7 +103,7 @@ :amount amount :account-id account-id}))))] - (manual-import raw-transactions company-id 1) + (manual-import raw-transactions company-id) {:status 200 :body (pr-str {:imported (count raw-transactions) diff --git a/src/clj/auto_ap/yodlee/import.clj b/src/clj/auto_ap/yodlee/import.clj index 3500d24b..ebafd96b 100644 --- a/src/clj/auto_ap/yodlee/import.clj +++ b/src/clj/auto_ap/yodlee/import.clj @@ -37,7 +37,7 @@ (Integer/parseInt check-number) nil)) -(defn import-transactions [transactions yodlee-account-id->company yodlee-account-id->bank-account-id] +(defn import-transactions [transactions transaction->company transaction->bank-account-id] (doseq [transaction transactions :let [{post-date :postDate account-id :accountId @@ -56,11 +56,11 @@ (- amount) amount) check-number (extract-check-number transaction) - company-id (yodlee-account-id->company account-id) - bank-account-id (yodlee-account-id->bank-account-id account-id) - check-id (transaction->check-id transaction check-number company-id bank-account-id amount) - ]] - (println transaction) + company-id (transaction->company transaction) + bank-account-id (transaction->bank-account-id transaction) + check-id (transaction->check-id transaction check-number company-id bank-account-id amount)]] + + (try (transactions/upsert! @@ -75,7 +75,7 @@ :status status :company-id company-id :check-number check-number - :bank-account-id (yodlee-account-id->bank-account-id account-id) + :bank-account-id (transaction->bank-account-id transaction) :check-id check-id }) (when check-id @@ -84,7 +84,7 @@ (catch Exception e (println e))))) -(defn manual-import [manual-transactions company-id bank-account-id] +(defn manual-import [manual-transactions company-id] (let [transformed-transactions (->> manual-transactions (filter #(= "posted" (:status %))) (group-by #(select-keys % [:date :original-description :amount])) @@ -95,7 +95,7 @@ (map (fn [index {:keys [date description-original high-level-category amount account-id] :as transaction}] {:id (str date "-" description-original "-" amount "-" index) - + :bank-account-id account-id :date (time/unparse date "YYYY-MM-dd") :amount {:amount amount} :description {:original description-original @@ -105,7 +105,7 @@ transaction-group))))] (println "importing manual transactions" transformed-transactions) - (import-transactions transformed-transactions (constantly company-id) (constantly bank-account-id)))) + (import-transactions transformed-transactions (constantly company-id) :bank-account-id))) (defn do-import [] (let [transactions (client/get-transactions) @@ -117,7 +117,7 @@ :yodlee-account-id yodlee-account-id})) (:bank-accounts c))) (companies/get-all)) - yodlee-account-id->company (by :yodlee-account-id :company-id all-bank-accounts) - yodlee-account-id->bank-account-id (by :yodlee-account-id :bank-account-id all-bank-accounts)] - (import-transactions transactions yodlee-account-id->company yodlee-account-id->bank-account-id))) + transaction->company (comp (by :yodlee-account-id :company-id all-bank-accounts) :accountId) + transaction->bank-account-id (comp (by :yodlee-account-id :bank-account-id all-bank-accounts) :accountId)] + (import-transactions transactions transaction->company transaction->bank-account-id)))