diff --git a/project.clj b/project.clj index 654a1db7..56c0ed41 100644 --- a/project.clj +++ b/project.clj @@ -6,11 +6,12 @@ :username "datomic@brycecovertoperations.com" :password "9a382afc-d119-44db-83c2-98d8057d7666"}} :dependencies [[org.clojure/clojure "1.9.0"] - [org.clojure/clojurescript "1.10.764"] - [postgresql/postgresql "9.3-1102.jdbc41"] - [com.datomic/datomic-pro "0.9.5703" :exclusions [com.google.guava/guava org.apache.httpcomponents/httpclient]] + [com.datomic/datomic-pro "0.9.5703" + :exclusions [com.google.guava/guava + org.apache.httpcomponents/httpclient + org.slf4j/jul-to-slf4j + org.slf4j/log4j-over-slf4j]] [compojure "1.6.1" :exclusions [ring]] - [kibu/pushy "0.3.8"] [bidi "2.1.2"] [ring/ring-defaults "0.2.1"] [mount "0.1.16"] @@ -25,43 +26,46 @@ org.eclipse.jetty/jetty-server]] [yogthos/config "0.8"] [dk.ative/docjure "1.12.0"] - [org.clojure/java.jdbc "0.7.3"] [clj-fuzzy "0.4.1"] - [honeysql "0.9.2"] [com.walmartlabs/lacinia "0.25.0"] - ;; https://mvnrepository.com/artifact/postgresql/postgresql [vincit/venia "0.2.5"] - [postgresql/postgresql "9.3-1102.jdbc41"] [digest "1.4.8"] - [nilenso/honeysql-postgres "0.2.4"] - [cljs-http "0.1.44"] [clj-http "3.7.0" :exclusions [org.apache.httpcomponents/httpclient org.apache.httpcomponents/httpcore]] [clj-pdf "2.2.33"] [org.clojure/core.async "0.3.465"] [fogus/ring-edn "0.3.0"] - [buddy/buddy-auth "2.1.0"] - [buddy/buddy-sign "2.1.0"] + [buddy/buddy-auth "2.1.0" + :exclusions [com.fasterxml.jackson.dataformat/jackson-dataformat-cbor + com.fasterxml.jackson.core/jackson-core]] + [nrepl "0.6.0" :exclusions [org.clojure/tools.logging]] [org.clojure/tools.logging "1.1.0"] [ch.qos.logback/logback-classic "1.2.3"] [ch.qos.logback.contrib/logback-jackson "0.1.5"] [ch.qos.logback.contrib/logback-json-classic "0.1.5"] - [spootnik/unilog "0.7.24"] + [spootnik/unilog "0.7.24" + :exclusions [com.fasterxml.jackson.core/jackson-core + com.fasterxml.jackson.core/jackson-databind]] [clj-time "0.14.3"] - [io.forward/clojure-mail "1.0.7"] [ring/ring-json "0.4.0" :exclusions [cheshire]] [com.cemerick/url "0.1.1"] [bk/ring-gzip "0.3.0"] - [cider/cider-nrepl "0.21.1"] [amazonica "0.3.121" :exclusions [com.amazonaws/aws-java-sdk com.amazonaws/amazon-kinesis-client]] - [com.amazonaws/aws-java-sdk-core "1.11.600"] - [com.amazonaws/aws-java-sdk-ses "1.11.600"] - [com.amazonaws/aws-java-sdk-sqs "1.11.600"] - [com.amazonaws/aws-java-sdk-s3 "1.11.600"] - [com.amazonaws/aws-java-sdk-dynamodb "1.11.600"] + [com.amazonaws/aws-java-sdk-core "1.11.600" + :exclusions [commons-codec + commons-logging]] + [com.amazonaws/aws-java-sdk-ses "1.11.600" + :exclusions [commons-codec + org.apache.httpcomponents/httpclient]] + [com.amazonaws/aws-java-sdk-s3 "1.11.600" + :exclusions [commons-codec + org.apache.httpcomponents/httpclient]] + [com.amazonaws/aws-java-sdk-dynamodb "1.11.600" + :exclusions [commons-codec + org.apache.httpcomponents/httpclient]] [org.eclipse.jetty/jetty-http "9.4.17.v20190418"] [org.eclipse.jetty/jetty-util "9.4.17.v20190418"] [org.eclipse.jetty/jetty-server "9.4.17.v20190418"] @@ -70,7 +74,6 @@ [org.clojure/data.json "0.2.6"] [org.clojure/data.csv "0.1.4"] [io.rkn/conformity "0.5.1"] - [cider/piggieback "0.4.0"] [hiccup "1.0.5"]] :plugins [[lein-ring "0.9.7"] @@ -87,10 +90,15 @@ {:dev {:resource-paths ["resources" "target"] :dependencies [[binaryage/devtools "0.9.4"] - #_[refactor-nrepl "2.5.0"] + [postgresql/postgresql "9.3-1102.jdbc41"] + [org.clojure/java.jdbc "0.7.3"] [com.bhauman/figwheel-main "0.2.12" :exclusions [org.clojure/clojurescript + ring ring/ring-core ring/ring-codec + ring/ring-defaults + ring/ring-devel + org.clojure/tools.cli ring.adapter.jetty binaryage/devtools commons-io @@ -100,15 +108,19 @@ org.eclipse.jetty.websocket/websocket-server org.eclipse.jetty.websocket/websocket-servlet args4j]] - [com.bhauman/rebel-readline-cljs "0.1.4"] + [com.bhauman/rebel-readline-cljs "0.1.4" :exclusions [org.clojure/clojurescript]] [javax.servlet/servlet-api "2.5"]] :plugins [ [lein-pdo "0.1.1"]] :jvm-opts ["-Dconfig=config/dev.edn" "--add-modules" "java.xml.bind"]} :uberjar {:prep-tasks ["fig:min" ] :dependencies [[com.bhauman/figwheel-main "0.2.12" :exclusions [org.clojure/clojurescript + ring ring/ring-core ring/ring-codec + ring/ring-defaults + ring/ring-devel + org.clojure/tools.cli ring.adapter.jetty binaryage/devtools commons-io @@ -118,11 +130,18 @@ org.eclipse.jetty.websocket/websocket-server org.eclipse.jetty.websocket/websocket-servlet args4j]]]} - :provided {:dependencies [[org.clojure/clojurescript "1.10.764"] + :provided {:dependencies [[org.clojure/clojurescript "1.10.764" + :exclusions [com.google.code.findbugs/jsr305 + com.fasterxml.jackson.core/jackson-core]] [reagent "1.0.0-alpha2" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server] ] - [re-frame "0.10.2"] + [re-frame "0.10.2" + :exclusions + [reagent + org.clojure/clojurescript]] [re-frame-utils "0.1.0"] - [com.andrewmcveigh/cljs-time "0.5.2"]]}} + [com.andrewmcveigh/cljs-time "0.5.2"] + [cljs-http "0.1.44"] + [kibu/pushy "0.3.8"]]}} :main auto-ap.server diff --git a/src/clj/auto_ap/background/mail.clj b/src/clj/auto_ap/background/mail.clj deleted file mode 100644 index dd632e06..00000000 --- a/src/clj/auto_ap/background/mail.clj +++ /dev/null @@ -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))) diff --git a/src/clj/auto_ap/server.clj b/src/clj/auto_ap/server.clj index e442036d..d5cdde7c 100644 --- a/src/clj/auto_ap/server.clj +++ b/src/clj/auto_ap/server.clj @@ -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]