minor error
This commit is contained in:
@@ -40,21 +40,21 @@
|
|||||||
#_#_:attribute-names ["All"]}))]
|
#_#_:attribute-names ["All"]}))]
|
||||||
(let [message-body (json/read-str (:body message)
|
(let [message-body (json/read-str (:body message)
|
||||||
:key-fn keyword)]
|
:key-fn keyword)]
|
||||||
(doseq [r (:Records message-body)]
|
(doseq [r (:Records message-body)]
|
||||||
(alog/info ::processing-record :record r )
|
(alog/info ::processing-record :record r)
|
||||||
(let [props (Session/getDefaultInstance (Properties.))
|
(let [props (Session/getDefaultInstance (Properties.))
|
||||||
message-stream (-> (s3/get-object {:key (-> r :s3 :object :key)
|
message-stream (-> (s3/get-object {:key (-> r :s3 :object :key)
|
||||||
:bucket-name (-> r :s3 :bucket :name)})
|
:bucket-name (-> r :s3 :bucket :name)})
|
||||||
:input-stream)
|
:input-stream)
|
||||||
mail (message/read-message (MimeMessage. props message-stream))]
|
mail (message/read-message (MimeMessage. props message-stream))]
|
||||||
(alog/info ::reading-mail :body (->> mail :body (filter :content-type) (map :body) ))
|
(alog/info ::reading-mail :body (->> mail :body (filter :content-type) (map :body)))
|
||||||
(mu/with-context {:email-record {:key (-> r :s3 :object :key)
|
(mu/with-context {:email-record {:key (-> r :s3 :object :key)
|
||||||
:bucket-name (-> r :s3 :bucket :name)}}
|
:bucket-name (-> r :s3 :bucket :name)}}
|
||||||
(doseq [pdf-stream (->> (-> mail :body)
|
(doseq [pdf-stream (->> (-> mail :body)
|
||||||
(filter :content-type)
|
(filter :content-type)
|
||||||
#_(filter #(re-find #"application/pdf" (:content-type %)) ))
|
#_(filter #(re-find #"application/pdf" (:content-type %))))
|
||||||
:let [filename (str "/tmp/" (UUID/randomUUID) ".pdf")]]
|
:let [filename (str "/tmp/" (UUID/randomUUID) ".pdf")]]
|
||||||
(try
|
(try
|
||||||
(let [_ (io/copy (:body pdf-stream) (io/file filename))
|
(let [_ (io/copy (:body pdf-stream) (io/file filename))
|
||||||
extension (last (str/split (.getName (io/file filename)) #"\."))
|
extension (last (str/split (.getName (io/file filename)) #"\."))
|
||||||
s3-location (str "invoice-files/" (str (UUID/randomUUID)) "." extension)]
|
s3-location (str "invoice-files/" (str (UUID/randomUUID)) "." extension)]
|
||||||
@@ -71,13 +71,13 @@
|
|||||||
s3-location)
|
s3-location)
|
||||||
:import-status :import-status/imported)))]
|
:import-status :import-status/imported)))]
|
||||||
(alog/info ::found-imports :imports imports)
|
(alog/info ::found-imports :imports imports)
|
||||||
(invoices/import-uploaded-invoice {:user/role "admin"} imports ))))
|
(invoices/import-uploaded-invoice {:user/role "admin"} imports))))
|
||||||
(catch Exception e
|
(catch Exception e
|
||||||
(alog/warn ::cant-import :error e)
|
(alog/warn ::cant-import :error e)
|
||||||
(send-email-about-failed-message (-> r :s3 :bucket :name) (-> r :s3 :object :key)) (str e))
|
(send-email-about-failed-message (-> r :s3 :bucket :name) (-> r :s3 :object :key) (str e)))
|
||||||
(finally
|
(finally
|
||||||
(io/delete-file filename))))))))
|
(io/delete-file filename))))))))
|
||||||
(sqs/delete-message (assoc message :queue-url (:invoice-import-queue-url env) ))))
|
(sqs/delete-message (assoc message :queue-url (:invoice-import-queue-url env)))))
|
||||||
|
|
||||||
(defn -main [& _]
|
(defn -main [& _]
|
||||||
(execute "import-uploaded-invoices" process-sqs))
|
(execute "import-uploaded-invoices" process-sqs))
|
||||||
|
|||||||
Reference in New Issue
Block a user