File tree Expand file tree Collapse file tree 7 files changed +54
-59
lines changed
Expand file tree Collapse file tree 7 files changed +54
-59
lines changed Original file line number Diff line number Diff line change 22
33GIT_SHA := $(shell git rev-parse HEAD)
44
5- docker-image :
6- DOCKER_BUILDKIT=1 docker build -f deploy/Dockerfile -t flamebin:latest .
7-
85remote-pull :
9- (cd /flamebin/qa/flamebin.dev && git fetch && git reset --hard origin/develop && cd /flamebin/prod/flamebin.dev && git fetch && git reset --hard origin/prod)
6+ git fetch && git reset --hard origin/develop
107
118compose :
129 GIT_SHA=$(GIT_SHA ) docker-compose -f deploy/compose.yml up --build -d; \
Original file line number Diff line number Diff line change 11(ns flamebin.config
22 (:require [clojure.java.io :as io]
33 [clojure.string :as str]
4- flamebin.util
5- malli.core
6- malli.experimental.time
7- malli.registry
84 [mount.lite :as mount]
95 [omniconf.core :as cfg]
106 [taoensso.timbre :as log]
9490
9591; ;;; Misc initialization
9692
97- (malli.registry/set-default-registry!
98- (malli.registry/composite-registry
99- (malli.core/default-schemas )
100- (malli.experimental.time/schemas )
101- flamebin.util/nano-id-registry))
102-
10393(taoensso.timbre.tools.logging/use-timbre )
Original file line number Diff line number Diff line change 11(ns flamebin.dto
22 (:require [clojure.test.check.generators :as gen]
3- [flamebin.config :refer [config]]
4- [malli.core :as m]
3+ [flamebin.util.malli :as fmalli]
54 [malli.experimental.lite :as mlite]
6- [malli.experimental.time.transform]
7- [malli.transform :as mt]
85 [malli.util :as mu])
9- (:import java.time. Instant))
6+ (:import ( java.time Instant) ))
107
11- config ; ; Don't remove.
12-
13- (def ^:private int-to-boolean
14- {:decoders
15- {:boolean #(cond (= % 1 ) true
16- (= % 0 ) false
17- :else %)}})
18-
19- (def global-transformer
20- (mt/transformer
21- mt/string-transformer
22- (mt/key-transformer {:decode keyword})
23- int-to-boolean
24- malli.experimental.time.transform/time-transformer
25- mt/default-value-transformer))
26-
27- (defn coerce [value schema]
28- (m/coerce schema value global-transformer))
8+ (def coerce fmalli /coerce )
9+ (reset-meta! #'coerce (meta #'fmalli/coerce))
2910
3011(defmacro ^:private defschema-and-constructor [schema-name schema-val]
3112 (assert (= (first schema-val) '->))
Original file line number Diff line number Diff line change 3131
3232#_(every? valid-id? (repeatedly 10000 new-id))
3333
34- (defn- gen-invoke
35- " Given a 0-arg function `f`, return a generator that invokes it whenever a value
36- needs to be generated."
37- [f]
38- (#'gen/make-gen (fn [& _] (rose/pure (f )))))
39-
40- (def nano-id-registry
41- {:nano-id [:and {:gen/gen (gen-invoke new-id)}
42- :string
43- [:fn {:error/message " Not valid ID" } valid-id?]]})
44-
4534(let [generator (encore/rand-id-fn {:chars :alphanumeric , :len secret-token-bytes})]
4635 (defn secret-token [] (generator )))
4736
Original file line number Diff line number Diff line change 1+ (ns flamebin.util.malli
2+ (:require [clojure.test.check.generators :as gen]
3+ [clojure.test.check.rose-tree :as rose]
4+ [flamebin.util :as util]
5+ [malli.core :as m]
6+ [malli.experimental.time]
7+ [malli.experimental.time.transform]
8+ [malli.registry]
9+ [malli.transform :as mt]))
10+
11+ (defn- gen-invoke
12+ " Given a 0-arg function `f`, return a generator that invokes it whenever a value
13+ needs to be generated."
14+ [f]
15+ (#'gen/make-gen (fn [& _] (rose/pure (f )))))
16+
17+ (def nano-id-registry
18+ {:nano-id [:and {:gen/gen (gen-invoke util/new-id)}
19+ :string
20+ [:fn {:error/message " Not valid ID" } util/valid-id?]]})
21+
22+ (def ^:private int-to-boolean
23+ {:decoders
24+ {:boolean #(cond (= % 1 ) true
25+ (= % 0 ) false
26+ :else %)}})
27+
28+ (def global-transformer
29+ (mt/transformer
30+ mt/string-transformer
31+ (mt/key-transformer {:decode keyword})
32+ int-to-boolean
33+ malli.experimental.time.transform/time-transformer
34+ mt/default-value-transformer))
35+
36+ (defn coerce [value schema]
37+ (m/coerce schema value global-transformer))
38+
39+ (malli.registry/set-default-registry!
40+ (malli.registry/composite-registry
41+ (malli.core/default-schemas )
42+ (malli.experimental.time/schemas )
43+ nano-id-registry))
Original file line number Diff line number Diff line change 55 [flamebin.infra.metrics :as ms]
66 [flamebin.rate-limiter :as rl]
77 [flamebin.util :refer [raise valid-id?]]
8- [flamebin.util.streams :as streams ]
8+ [flamebin.web.middleware :refer :all ]
99 [flamebin.web.pages :as pages]
10- [malli.core :as m]
11- malli.error
1210 [mount.lite :as mount]
13- [muuntaja.core :as content]
1411 [muuntaja.middleware :as content.mw]
1512 [org.httpkit.server :as server]
1613 [reitit.coercion.malli]
2017 [reitit.ring.middleware.parameters :refer [parameters-middleware]]
2118 [ring.middleware.head]
2219 [ring.middleware.resource]
23- [taoensso.timbre :as log]
24- [flamebin.web.middleware :refer :all ])
25- (:import clojure.lang.ExceptionInfo))
20+ [taoensso.timbre :as log]))
2621
2722; ; Endpoints: API
2823
Original file line number Diff line number Diff line change 11(ns flamebin.web.middleware
22 (:require [flamebin.infra.metrics :as ms]
33 [flamebin.util :refer [raise]]
4+ [flamebin.util.malli :refer [coerce]]
45 [flamebin.util.streams :as streams]
56 [malli.core :as m]
6- [malli.experimental.lite]
77 [malli.error]
8+ [malli.experimental.lite]
89 [muuntaja.core :as content]
910 [reitit.ring :as ring]
10- [taoensso.timbre :as log]
11- [flamebin.dto :as dto])
11+ [taoensso.timbre :as log])
1212 (:import (clojure.lang ExceptionInfo)))
1313
1414(defn resp
100100 (let [schema (if (satisfies? m/Schema schema-data)
101101 schema-data
102102 (malli.experimental.lite/schema schema-data))
103- coerced (dto/ coerce query-params schema)]
103+ coerced (coerce query-params schema)]
104104 (handler (assoc request :query-params coerced)))
105105 (handler request)))))
You can’t perform that action at this time.
0 commit comments