diff --git a/src/clj/auto_ap/graphql/invoices.clj b/src/clj/auto_ap/graphql/invoices.clj index 899b981f..277f15b1 100644 --- a/src/clj/auto_ap/graphql/invoices.clj +++ b/src/clj/auto_ap/graphql/invoices.clj @@ -74,6 +74,10 @@ invoices)) (defn assert-no-conflicting [{:keys [invoice_number client_id vendor_id]}] + (when-not vendor_id + (assert-failure "Please specify a vendor.")) + (when-not invoice_number + (assert-failure "Please specify an invoice.")) (when (seq (d-invoices/find-conflicting {:invoice/invoice-number invoice_number :invoice/vendor vendor_id :invoice/client client_id})) diff --git a/src/clj/auto_ap/ledger.clj b/src/clj/auto_ap/ledger.clj index aa7fe0b7..114f2e54 100644 --- a/src/clj/auto_ap/ledger.clj +++ b/src/clj/auto_ap/ledger.clj @@ -2,9 +2,9 @@ (:require [auto-ap.datomic :refer [conn remove-nils]] [auto-ap.logging :refer [info-event]] - [auto-ap.utils :refer [dollars-0? dollars=]] - [clj-time.core :as t] + [auto-ap.utils :refer [dollars-0? dollars= heartbeat]] [clj-time.coerce :as c] + [clj-time.core :as t] [clojure.tools.logging :as log] [com.unbounce.dogstatsd.core :as statsd] [datomic.api :as d] @@ -423,5 +423,5 @@ (log/error e))))) (mount/defstate touch-broken-ledger-worker - :start (scheduler/every reconciliation-frequency touch-broken-ledger) + :start (scheduler/every reconciliation-frequency (heartbeat touch-broken-ledger :touch-broken-ledger)) :stop (scheduler/stop touch-broken-ledger-worker)) diff --git a/src/clj/auto_ap/square/core.clj b/src/clj/auto_ap/square/core.clj index 1ca9cd18..6aaf72b7 100644 --- a/src/clj/auto_ap/square/core.clj +++ b/src/clj/auto_ap/square/core.clj @@ -1,5 +1,6 @@ (ns auto-ap.square.core (:require [auto-ap.datomic :refer [conn remove-nils]] + [auto-ap.utils :refer [heartbeat]] [auto-ap.time :as atime] [clj-http.client :as client] [clj-time.coerce :as coerce] @@ -501,7 +502,7 @@ (upsert-refunds client)))) (mount/defstate square-loader - :start (scheduler/every (* 4 59 60 1000) upsert-all) + :start (scheduler/every (* 4 59 60 1000) (heartbeat upsert-all :square-loading)) :stop (scheduler/stop square-loader)) diff --git a/src/cljc/auto_ap/utils.cljc b/src/cljc/auto_ap/utils.cljc index 2cfd0d96..f0e32e38 100644 --- a/src/cljc/auto_ap/utils.cljc +++ b/src/cljc/auto_ap/utils.cljc @@ -1,4 +1,7 @@ -(ns auto-ap.utils) +(ns auto-ap.utils + #?@ + (:clj + [(:require [clojure.tools.logging :as log])])) (defn by ([f xs] @@ -79,3 +82,14 @@ (f) (finally (reset! in-progress? false))))))) + + +(defn heartbeat [f id] + (fn [] + #?(:clj + (do + (log/info "Heartbeat for " id) + (f)) + + :cljs (do (println "Heartbeat for " id) + (f)))))