Indent test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defmethod restructure-param :path-params | |
[_ {:keys [lets letks parameters] :as acc}] | |
"restructures path-params by plumbing letk notation. generates | |
synthetic defs for the models. example: | |
:path-params [id :- long name :- string]" | |
(if-let [path-params (:path-params parameters)] | |
(let [schema (fnk-schema path-params) | |
model-name (gensym "path-params-") | |
_ (eval `(def ~model-name ~schema)) | |
coerced-model (gensym)] | |
(assoc acc | |
:lets (into lets [coerced-model `(schema/coerce! | |
~schema | |
(:route-params ~+compojure-api-request+) | |
:query)]) | |
:parameters (-> parameters | |
(dissoc :path-params) | |
(update-in [:parameters] conj | |
{:type :path | |
:model (eval `(var ~model-name))})) | |
:letks (into letks [path-params coerced-model]))))) | |
(defn- destructure-compojure-api-request [lets arg] | |
(cond | |
(vector? arg) [lets (into arg [:as +compojure-api-request+])] | |
(map? arg) (if-let [as (:as arg)] | |
[(conj lets +compojure-api-request+ as) arg] | |
[lets (merge arg [:as +compojure-api-request+])]) | |
(symbol? arg) [(conj lets +compojure-api-request+ arg) arg] | |
:else (throw | |
(runtimeexception. | |
(str "unknown compojure destruction synxax: " arg))))) | |
;; Vim settings: | |
;; let g:clojure_fuzzy_indent_patterns=['^GET', '^POST', '^PUT', '^DELETË́', '^ANY', '^HEAD', '^PATCH', '^OPTIONS'] | |
;; autocmd FileType clojure setlocal lispwords+=describe,it,testing,facts,fact,provided | |
(GET* "/echo" [] | |
:return QueryParams | |
:query [query QueryParams] | |
(ok query)) | |
(GET* | |
"/echo" [] | |
:return QueryParams | |
:query [query QueryParams] | |
(ok query)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment