0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-13 00:01:51 -05:00

💄 Improve json namespace API (and fix linter).

This commit is contained in:
Andrey Antukh 2021-12-23 00:04:15 +01:00
parent 98d5789b1b
commit c6054f7ab2
9 changed files with 42 additions and 39 deletions

View file

@ -27,14 +27,16 @@
com.zaxxer.hikari.HikariConfig com.zaxxer.hikari.HikariConfig
com.zaxxer.hikari.HikariDataSource com.zaxxer.hikari.HikariDataSource
com.zaxxer.hikari.metrics.prometheus.PrometheusMetricsTrackerFactory com.zaxxer.hikari.metrics.prometheus.PrometheusMetricsTrackerFactory
java.io.InputStream
java.io.OutputStream
java.lang.AutoCloseable java.lang.AutoCloseable
java.sql.Connection java.sql.Connection
java.sql.Savepoint java.sql.Savepoint
org.postgresql.PGConnection org.postgresql.PGConnection
org.postgresql.geometric.PGpoint org.postgresql.geometric.PGpoint
org.postgresql.jdbc.PgArray
org.postgresql.largeobject.LargeObject org.postgresql.largeobject.LargeObject
org.postgresql.largeobject.LargeObjectManager org.postgresql.largeobject.LargeObjectManager
org.postgresql.jdbc.PgArray
org.postgresql.util.PGInterval org.postgresql.util.PGInterval
org.postgresql.util.PGobject)) org.postgresql.util.PGobject))
@ -356,7 +358,7 @@
val (.getValue o)] val (.getValue o)]
(if (or (= typ "json") (if (or (= typ "json")
(= typ "jsonb")) (= typ "jsonb"))
(json/decode-str val) (json/read val)
val))) val)))
(defn decode-transit-pgobject (defn decode-transit-pgobject
@ -392,7 +394,7 @@
[data] [data]
(doto (org.postgresql.util.PGobject.) (doto (org.postgresql.util.PGobject.)
(.setType "jsonb") (.setType "jsonb")
(.setValue (json/encode-str data)))) (.setValue (json/write-str data))))
;; --- Locks ;; --- Locks

View file

@ -13,7 +13,6 @@
[app.util.json :as json] [app.util.json :as json]
[buddy.core.codecs :as bc] [buddy.core.codecs :as bc]
[buddy.core.hash :as bh] [buddy.core.hash :as bh]
[clojure.java.io :as io]
[ring.middleware.cookies :refer [wrap-cookies]] [ring.middleware.cookies :refer [wrap-cookies]]
[ring.middleware.keyword-params :refer [wrap-keyword-params]] [ring.middleware.keyword-params :refer [wrap-keyword-params]]
[ring.middleware.multipart-params :refer [wrap-multipart-params]] [ring.middleware.multipart-params :refer [wrap-multipart-params]]
@ -36,8 +35,7 @@
(t/read! reader))) (t/read! reader)))
(parse-json [body] (parse-json [body]
(let [reader (io/reader body)] (json/read body))
(json/read reader)))
(parse [type body] (parse [type body]
(try (try

View file

@ -68,7 +68,7 @@
:timeout 6000 :timeout 6000
:method :post :method :post
:headers {"content-type" "application/json"} :headers {"content-type" "application/json"}
:body (json/encode payload)})] :body (json/write payload)})]
(cond (cond
(= (:status response) 204) (= (:status response) 204)
true true

View file

@ -31,7 +31,7 @@
rsp (http/send! {:uri uri rsp (http/send! {:uri uri
:method :post :method :post
:headers {"content-type" "application/json"} :headers {"content-type" "application/json"}
:body (json/encode-str {:text text})})] :body (json/write-str {:text text})})]
(when (not= (:status rsp) 200) (when (not= (:status rsp) 200)
(l/error :hint "error on sending data to mattermost" (l/error :hint "error on sending data to mattermost"
:response (pr-str rsp)))) :response (pr-str rsp))))

View file

@ -15,8 +15,7 @@
[clojure.core.async :as a] [clojure.core.async :as a]
[clojure.spec.alpha :as s] [clojure.spec.alpha :as s]
[cuerdas.core :as str] [cuerdas.core :as str]
[integrant.core :as ig] [integrant.core :as ig])
[jsonista.core :as j])
(:import (:import
org.zeromq.SocketType org.zeromq.SocketType
org.zeromq.ZMQ$Socket org.zeromq.ZMQ$Socket
@ -54,10 +53,10 @@
[_ f] [_ f]
(a/close! (::buffer (meta f)))) (a/close! (::buffer (meta f))))
(def json-mapper (def ^:private json-mapper
(j/object-mapper (json/mapper
{:encode-key-fn str/camel {:encode-key-fn str/camel
:decode-key-fn (comp keyword str/kebab)})) :decode-key-fn (comp keyword str/kebab)}))
(defn- start-rcv-loop (defn- start-rcv-loop
([] (start-rcv-loop nil)) ([] (start-rcv-loop nil))
@ -70,7 +69,7 @@
(.. socket (setReceiveTimeOut 5000)) (.. socket (setReceiveTimeOut 5000))
(loop [] (loop []
(let [msg (.recv ^ZMQ$Socket socket) (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)] msg (if (nil? msg) :empty msg)]
(if (a/>!! out msg) (if (a/>!! out msg)
(recur) (recur)
@ -78,7 +77,6 @@
(.close ^java.lang.AutoCloseable socket) (.close ^java.lang.AutoCloseable socket)
(.close ^java.lang.AutoCloseable zctx)))))))) (.close ^java.lang.AutoCloseable zctx))))))))
(s/def ::logger-name string?) (s/def ::logger-name string?)
(s/def ::level string?) (s/def ::level string?)
(s/def ::thread string?) (s/def ::thread string?)

View file

@ -179,18 +179,18 @@
;; Add a unique listener to connection ;; Add a unique listener to connection
(.addListener sub-conn (.addListener sub-conn
(reify RedisPubSubListener (reify RedisPubSubListener
(message [it pattern topic message]) (message [_ _pattern _topic _message])
(message [it topic message] (message [_ topic message]
;; There are no back pressure, so we use a slidding ;; There are no back pressure, so we use a slidding
;; buffer for cases when the pubsub broker sends ;; buffer for cases when the pubsub broker sends
;; more messages that we can process. ;; more messages that we can process.
(let [val {:topic topic :message (blob/decode message)}] (let [val {:topic topic :message (blob/decode message)}]
(when-not (a/offer! rcv-ch val) (when-not (a/offer! rcv-ch val)
(l/warn :msg "dropping message on subscription loop")))) (l/warn :msg "dropping message on subscription loop"))))
(psubscribed [it pattern count]) (psubscribed [_ _pattern _count])
(punsubscribed [it pattern count]) (punsubscribed [_ _pattern _count])
(subscribed [it topic count]) (subscribed [_ _topic _count])
(unsubscribed [it topic count]))) (unsubscribed [_ _topic _count])))
(letfn [(subscribe-to-single-topic [nsubs topic chan] (letfn [(subscribe-to-single-topic [nsubs topic chan]
(let [nsubs (if (nil? nsubs) #{chan} (conj nsubs chan))] (let [nsubs (if (nil? nsubs) #{chan} (conj nsubs chan))]

View file

@ -117,11 +117,11 @@
io/IOFactory io/IOFactory
(make-reader [_ opts] (make-reader [_ opts]
(io/make-reader path opts)) (io/make-reader path opts))
(make-writer [_ opts] (make-writer [_ _]
(throw (UnsupportedOperationException. "not implemented"))) (throw (UnsupportedOperationException. "not implemented")))
(make-input-stream [_ opts] (make-input-stream [_ opts]
(io/make-input-stream path opts)) (io/make-input-stream path opts))
(make-output-stream [_ opts] (make-output-stream [_ _]
(throw (UnsupportedOperationException. "not implemented"))) (throw (UnsupportedOperationException. "not implemented")))
clojure.lang.Counted clojure.lang.Counted
(count [_] size) (count [_] size)
@ -138,11 +138,11 @@
io/IOFactory io/IOFactory
(make-reader [_ opts] (make-reader [_ opts]
(io/make-reader bais opts)) (io/make-reader bais opts))
(make-writer [_ opts] (make-writer [_ _]
(throw (UnsupportedOperationException. "not implemented"))) (throw (UnsupportedOperationException. "not implemented")))
(make-input-stream [_ opts] (make-input-stream [_ opts]
(io/make-input-stream bais opts)) (io/make-input-stream bais opts))
(make-output-stream [_ opts] (make-output-stream [_ _]
(throw (UnsupportedOperationException. "not implemented"))) (throw (UnsupportedOperationException. "not implemented")))
clojure.lang.Counted clojure.lang.Counted
@ -159,11 +159,11 @@
io/IOFactory io/IOFactory
(make-reader [_ opts] (make-reader [_ opts]
(io/make-reader is opts)) (io/make-reader is opts))
(make-writer [_ opts] (make-writer [_ _]
(throw (UnsupportedOperationException. "not implemented"))) (throw (UnsupportedOperationException. "not implemented")))
(make-input-stream [_ opts] (make-input-stream [_ opts]
(io/make-input-stream is opts)) (io/make-input-stream is opts))
(make-output-stream [_ opts] (make-output-stream [_ _]
(throw (UnsupportedOperationException. "not implemented"))) (throw (UnsupportedOperationException. "not implemented")))
clojure.lang.Counted clojure.lang.Counted

View file

@ -59,7 +59,7 @@
response (http/send! {:method :post response (http/send! {:method :post
:uri (:uri cfg) :uri (:uri cfg)
:headers {"content-type" "application/json"} :headers {"content-type" "application/json"}
:body (json/encode-str data)})] :body (json/write-str data)})]
(when (> (:status response) 206) (when (> (:status response) 206)
(ex/raise :type :internal (ex/raise :type :internal
:code :invalid-response :code :invalid-response

View file

@ -9,22 +9,27 @@
(:require (:require
[jsonista.core :as j])) [jsonista.core :as j]))
(defn encode-str (defn mapper
[v] [params]
(j/write-value-as-string v j/keyword-keys-object-mapper)) (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 (defn encode
[v] [v]
(j/write-value-as-bytes v j/keyword-keys-object-mapper)) (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 (defn decode
[v] [v]
(j/read-value v j/keyword-keys-object-mapper)) (j/read-value v j/keyword-keys-object-mapper))
(defn read
[v]
(j/read-value v j/keyword-keys-object-mapper))