diff --git a/backend/src/app/db.clj b/backend/src/app/db.clj index e56b9bcb5..a4976b47b 100644 --- a/backend/src/app/db.clj +++ b/backend/src/app/db.clj @@ -358,7 +358,7 @@ val (.getValue o)] (if (or (= typ "json") (= typ "jsonb")) - (json/decode-str val) + (json/read val) val))) (defn decode-transit-pgobject @@ -394,7 +394,7 @@ [data] (doto (org.postgresql.util.PGobject.) (.setType "jsonb") - (.setValue (json/encode-str data)))) + (.setValue (json/write-str data)))) ;; --- Locks diff --git a/backend/src/app/http/middleware.clj b/backend/src/app/http/middleware.clj index 633621a41..5766286d0 100644 --- a/backend/src/app/http/middleware.clj +++ b/backend/src/app/http/middleware.clj @@ -13,7 +13,6 @@ [app.util.json :as json] [buddy.core.codecs :as bc] [buddy.core.hash :as bh] - [clojure.java.io :as io] [ring.middleware.cookies :refer [wrap-cookies]] [ring.middleware.keyword-params :refer [wrap-keyword-params]] [ring.middleware.multipart-params :refer [wrap-multipart-params]] @@ -36,8 +35,7 @@ (t/read! reader))) (parse-json [body] - (let [reader (io/reader body)] - (json/read reader))) + (json/read body)) (parse [type body] (try diff --git a/backend/src/app/loggers/loki.clj b/backend/src/app/loggers/loki.clj index 49b264a83..228877789 100644 --- a/backend/src/app/loggers/loki.clj +++ b/backend/src/app/loggers/loki.clj @@ -68,7 +68,7 @@ :timeout 6000 :method :post :headers {"content-type" "application/json"} - :body (json/encode payload)})] + :body (json/write payload)})] (cond (= (:status response) 204) true diff --git a/backend/src/app/loggers/mattermost.clj b/backend/src/app/loggers/mattermost.clj index ca23b9229..340fd7bf1 100644 --- a/backend/src/app/loggers/mattermost.clj +++ b/backend/src/app/loggers/mattermost.clj @@ -31,7 +31,7 @@ rsp (http/send! {:uri uri :method :post :headers {"content-type" "application/json"} - :body (json/encode-str {:text text})})] + :body (json/write-str {:text text})})] (when (not= (:status rsp) 200) (l/error :hint "error on sending data to mattermost" :response (pr-str rsp)))) diff --git a/backend/src/app/loggers/zmq.clj b/backend/src/app/loggers/zmq.clj index 6568cda0b..92ad7bfb6 100644 --- a/backend/src/app/loggers/zmq.clj +++ b/backend/src/app/loggers/zmq.clj @@ -15,8 +15,7 @@ [clojure.core.async :as a] [clojure.spec.alpha :as s] [cuerdas.core :as str] - [integrant.core :as ig] - [jsonista.core :as j]) + [integrant.core :as ig]) (:import org.zeromq.SocketType org.zeromq.ZMQ$Socket @@ -54,10 +53,10 @@ [_ f] (a/close! (::buffer (meta f)))) -(def json-mapper - (j/object-mapper - {:encode-key-fn str/camel - :decode-key-fn (comp keyword str/kebab)})) +(def ^:private json-mapper + (json/mapper + {:encode-key-fn str/camel + :decode-key-fn (comp keyword str/kebab)})) (defn- start-rcv-loop ([] (start-rcv-loop nil)) @@ -70,7 +69,7 @@ (.. socket (setReceiveTimeOut 5000)) (loop [] (let [msg (.recv ^ZMQ$Socket socket) - msg (ex/ignoring (j/read-value msg json-mapper)) + msg (ex/ignoring (json/read msg json-mapper)) msg (if (nil? msg) :empty msg)] (if (a/>!! out msg) (recur) @@ -78,7 +77,6 @@ (.close ^java.lang.AutoCloseable socket) (.close ^java.lang.AutoCloseable zctx)))))))) - (s/def ::logger-name string?) (s/def ::level string?) (s/def ::thread string?) diff --git a/backend/src/app/msgbus.clj b/backend/src/app/msgbus.clj index a8ad395fe..285f185c7 100644 --- a/backend/src/app/msgbus.clj +++ b/backend/src/app/msgbus.clj @@ -179,18 +179,18 @@ ;; Add a unique listener to connection (.addListener sub-conn (reify RedisPubSubListener - (message [_it _pattern _topic _message]) - (message [_it topic message] - ;; There are no back pressure, so we use a sliding + (message [_ _pattern _topic _message]) + (message [_ topic message] + ;; There are no back pressure, so we use a slidding ;; buffer for cases when the pubsub broker sends ;; more messages that we can process. (let [val {:topic topic :message (blob/decode message)}] (when-not (a/offer! rcv-ch val) (l/warn :msg "dropping message on subscription loop")))) - (psubscribed [_it _pattern _count]) - (punsubscribed [_it _pattern _count]) - (subscribed [_it _topic _count]) - (unsubscribed [_it _topic _count]))) + (psubscribed [_ _pattern _count]) + (punsubscribed [_ _pattern _count]) + (subscribed [_ _topic _count]) + (unsubscribed [_ _topic _count]))) (letfn [(subscribe-to-single-topic [nsubs topic chan] (let [nsubs (if (nil? nsubs) #{chan} (conj nsubs chan))] diff --git a/backend/src/app/tasks/telemetry.clj b/backend/src/app/tasks/telemetry.clj index 62ab1d754..f9458d559 100644 --- a/backend/src/app/tasks/telemetry.clj +++ b/backend/src/app/tasks/telemetry.clj @@ -59,7 +59,7 @@ response (http/send! {:method :post :uri (:uri cfg) :headers {"content-type" "application/json"} - :body (json/encode-str data)})] + :body (json/write-str data)})] (when (> (:status response) 206) (ex/raise :type :internal :code :invalid-response diff --git a/backend/src/app/util/json.clj b/backend/src/app/util/json.clj index 0ffd859d1..edc204c1f 100644 --- a/backend/src/app/util/json.clj +++ b/backend/src/app/util/json.clj @@ -9,22 +9,27 @@ (:require [jsonista.core :as j])) -(defn encode-str - [v] - (j/write-value-as-string v j/keyword-keys-object-mapper)) +(defn mapper + [params] + (j/object-mapper params)) + +(defn write + ([v] (j/write-value-as-bytes v j/keyword-keys-object-mapper)) + ([v mapper] (j/write-value-as-bytes v mapper))) + +(defn write-str + ([v] (j/write-value-as-string v j/keyword-keys-object-mapper)) + ([v mapper] (j/write-value-as-string v mapper))) + +(defn read + ([v] (j/read-value v j/keyword-keys-object-mapper)) + ([v mapper] (j/read-value v mapper))) (defn encode [v] (j/write-value-as-bytes v j/keyword-keys-object-mapper)) -(defn decode-str - [v] - (j/read-value v j/keyword-keys-object-mapper)) - (defn decode [v] (j/read-value v j/keyword-keys-object-mapper)) -(defn read - [v] - (j/read-value v j/keyword-keys-object-mapper))