Adds reports page.

This commit is contained in:
2022-03-25 14:59:31 -07:00
parent a6ae06b760
commit 9e5a160d77
12 changed files with 368 additions and 12 deletions

View File

@@ -9,7 +9,8 @@
[clojure.java.io :as io]
[clojure.string :as str]
[config.core :refer [env]]
[datomic.api :as d])
[datomic.api :as d]
[clojure.tools.logging :as log])
(:import
(java.io ByteArrayOutputStream)
(java.text DecimalFormat)
@@ -498,12 +499,32 @@
output-stream)
(.toByteArray output-stream)))
(defn args->name [args]
(let [min-date (atime/unparse-local
(->> args :periods (map :start) first)
atime/iso-date)
max-date (atime/unparse-local
(->> args :periods (map :end) last)
atime/iso-date)
names (str/replace (->> args :client_ids (d/pull-many (d/db conn) [:client/name]) (map :client/name) (str/join "-")) #" " "_" )]
(format "Profit-and-loss-%s-to-%s-for-%s" min-date max-date names)))
(defn print-pnl [args data]
(let [uuid (str (UUID/randomUUID))
pdf-data (make-pnl args data)]
pdf-data (make-pnl args data)
name (args->name args)
key (str "reports/pnl/" uuid "/ " name ".pdf")
url (str "http://" (:data-bucket env) ".s3-website-us-east-1.amazonaws.com/" key)]
(s3/put-object :bucket-name (:data-bucket env)
:key (str "reports/pnl/" uuid ".pdf")
:key key
:input-stream (io/make-input-stream pdf-data {})
:metadata {:content-length (count pdf-data)
:content-type "application/pdf"})
(str "https://" (:data-bucket env) ".s3-website-us-east-1.amazonaws.com/reports/pnl/" uuid ".pdf")))
@(d/transact conn
[{:report/name name
:report/client (:client_ids args)
:report/key key
:report/url url
:report/created (java.util.Date.)}])
url
))