mirror of
https://github.com/penpot/penpot.git
synced 2025-03-12 15:51:37 -05:00
💄 Improve json namespace API (and fix linter).
This commit is contained in:
parent
98d5789b1b
commit
c6054f7ab2
9 changed files with 42 additions and 39 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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))))
|
||||||
|
|
|
@ -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,8 +53,8 @@
|
||||||
[_ 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)}))
|
||||||
|
|
||||||
|
@ -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?)
|
||||||
|
|
|
@ -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))]
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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))
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue