include more details when error happens importing

This commit is contained in:
Bryce
2023-10-27 20:37:42 -07:00
parent 76760b7bcf
commit 6c3017d1eb
2 changed files with 15 additions and 7 deletions

View File

@@ -18,7 +18,7 @@
(javax.mail Session) (javax.mail Session)
(javax.mail.internet MimeMessage))) (javax.mail.internet MimeMessage)))
(defn send-email-about-failed-message [mail-bucket mail-key] (defn send-email-about-failed-message [mail-bucket mail-key message]
(let [target-key (str "failed-emails/" mail-key ".eml") (let [target-key (str "failed-emails/" mail-key ".eml")
target-url (str "http://" (:data-bucket env) target-url (str "http://" (:data-bucket env)
".s3-website-us-east-1.amazonaws.com/" ".s3-website-us-east-1.amazonaws.com/"
@@ -28,7 +28,7 @@
(ses/send-email {:destination {:to-addresses (:import-failure-destination-emails env)} (ses/send-email {:destination {:to-addresses (:import-failure-destination-emails env)}
:source (:invoice-email env) :source (:invoice-email env)
:message {:subject "An email invoice import failed" :message {:subject "An email invoice import failed"
:body {:html (str "<div>You can download the original email <a href=\"" target-url "\">here</a>.</div>") :body {:html (str "<div>You can download the original email <a href=\"" target-url "\">here</a>.<p><pre>" message "</pre></p></div>")
:text (str "<div>You can download the original email here: " target-url)}}}))) :text (str "<div>You can download the original email here: " target-url)}}})))
@@ -73,8 +73,8 @@
(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 e) (alog/warn ::cant-import :error e)
(send-email-about-failed-message (-> r :s3 :bucket :name) (-> r :s3 :object :key))) (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) ))))

View File

@@ -12,9 +12,17 @@
\"foo[bar][][baz]\" \"foo[bar][][baz]\"
=> [\"foo\" \"bar\" \"\" \"baz\"]" => [\"foo\" \"bar\" \"\" \"baz\"]"
[param-name] [param-name]
(let [[_ k ks] (re-matches #"(?s)(.*?)((?:\[.*?\])*)" (name param-name)) (let [[_ k ks] (re-matches #"(?s)(.*?)((?:(\[.*?\])|\(.*?\))*)" (name param-name))
keys (if ks (map second (re-seq #"\[(.*?)\]" ks)))] keys (if ks (map second (re-seq #"(\[.*?\]|\(.*?\))" ks)))]
(cons k keys))) (cons k
(map (fn [k]
(let [[_ indexed-match] (re-matches k "\((.*?)\)")
[_ keyed-match] (re-matches k "\[(.*?)\]")]
(if indexed-match
[:index indexed-match]
[:key indexed-match])))))))
(defn- assoc-vec [m k v] (defn- assoc-vec [m k v]
(let [m (if (contains? m k) m (assoc m k []))] (let [m (if (contains? m k) m (assoc m k []))]