sorting out dependencies. untested.

This commit is contained in:
Bryce Covert
2020-12-23 13:17:27 -08:00
parent ff09faefb0
commit a46b58fe00
3 changed files with 46 additions and 73 deletions

View File

@@ -1,45 +0,0 @@
(ns auto-ap.background.mail
(:require [amazonica.aws.s3 :as s3]
[amazonica.aws.sqs :as sqs]
[auto-ap.parse :as parse]
[clojure-mail.message :as message]
[clojure.data.json :as json]
[clojure.java.io :as io]
[config.core :refer [env]])
(:import (java.util Properties UUID)
(javax.mail Session)
(javax.mail.internet MimeMessage)))
#_(defn process-sqs []
(try
(println "Fetching messages from sqs...")
(let [companies (companies/get-all)
vendors (vendors/get-all)]
(doseq [message (:messages (sqs/receive-message {:queue-url (:invoice-import-queue-url env)
:wait-time-seconds 5
:max-number-of-messages 10
#_#_:attribute-names ["All"]}))]
(let [message-body (json/read-str (:body message)
:key-fn keyword)]
(doseq [r (:Records message-body)]
(println "Processing record " r)
(let [props (Session/getDefaultInstance (Properties.))
message-stream (-> (s3/get-object {:key (-> r :s3 :object :key)
:bucket-name (-> r :s3 :bucket :name)})
:input-stream)
mail (message/read-message (MimeMessage. props message-stream))]
(doseq [pdf-stream (->> (-> mail :body)
(filter :content-type)
(filter #(re-find #"application/pdf" (:content-type %)) ))]
(let [filename (str "/tmp/" (UUID/randomUUID) ".pdf")]
(io/copy (:body pdf-stream) (io/file filename))
(invoices/import (parse/parse-file filename filename) companies)
(io/delete-file filename))))))
(sqs/delete-message (assoc message :queue-url (:invoice-import-queue-url env) ))))
(catch Exception e
(println e))))
#_(defn always-process-sqs []
(while (not (Thread/interrupted))
(process-sqs)))

View File

@@ -1,6 +1,5 @@
(ns auto-ap.server
(:require #_[auto-ap.background.mail :refer [always-process-sqs]]
[auto-ap.handler :refer [app]]
(:require [auto-ap.handler :refer [app]]
[auto-ap.ledger :as ledger]
[auto-ap.yodlee.core]
[auto-ap.background.invoices]