(ns streaker-service.routes
(:require [io.pedestal.http :as bootstrap]
[io.pedestal.http.route :as route]
[io.pedestal.http.body-params :as body-params]
[io.pedestal.http.route.definition :refer [expand-routes]]
[io.pedestal.interceptor :githuas interceptor :refer [defhandler]]
[ring.util.response :as ring-resp]
[streaker-service.api :as api]
[streaker-service.page :as page]
[streaker-service.pedestal-util :as pedestal-util]
[streaker-service.models.question :as question]
[streaker-service.models.friend :as friend]))
(defn api-get [req]
(ring-resp/response
(api/index)))
(defn mk-coll-get [coll-route item-route query typeinfo]
(fn [{{:keys [tx]} :query-params}]
(ring-resp/response
(api/collection-read coll-route
item-route
query
typeinfo
(Long/parseLong tx)))))
(defn mk-coll-post [typeinfo]
(fn [{:keys [:streaker-service.pedestal-util/body-params]}]
(ring-resp/response
(api/collection-create body-params typeinfo))))
(defn mk-item-get [item-route typeinfo]
(fn [{{:keys [tx]} :query-params {:keys [id]} :path-params}]
(ring-resp/response
(api/entity-read item-route
(Long/parseLong id)
(Long/parseLong tx)
typeinfo))))
(defn route [root query typeinfo]
(let [coll-route (keyword root)
item-route (keyword root "item")
coll-get-handler (mk-coll-get coll-route item-route query typeinfo)
coll-post-handler (mk-coll-post typeinfo)
item-get-handler (mk-item-get item-route typeinfo)]
`~[(str "/" root) {:get [coll-route `(identity ~coll-get-handler)]
:post [(keyword root "post") `(identity ~coll-post-handler)]
}
["/:id" {:get [item-route `(identity ~item-get-handler)]}]]))
(def routes
(expand-routes
`[[["/echo" {:any page/echo}]
["/api" {:get api-get}
^:interceptors [(body-params/body-params)
pedestal-util/auto-content-type
pedestal-util/combine-body-params]
~(route "questions" '[:find ?e :where [?e :Question/text]] question/typeinfo)
;;~(route "friends" '[:find ?e :where [?e :Friend/email]] friend/typeinfo)
]]]))
Show: Clojure Java REPL Tooling Duplicates All (66 frames hidden)
3. Unhandled clojure.lang.Compiler$CompilerException
Error compiling: routes.clj:55:3
Compiler.java: 3558 clojure.lang.Compiler$InvokeExpr/eval
Compiler.java: 417 clojure.lang.Compiler$DefExpr/eval
Compiler.java: 6708 clojure.lang.Compiler/eval
Compiler.java: 7130 clojure.lang.Compiler/load
REPL: 1 streaker-service.routes/eval19586
Compiler.java: 6703 clojure.lang.Compiler/eval
Compiler.java: 6666 clojure.lang.Compiler/eval
core.clj: 2927 clojure.core/eval
main.clj: 239 clojure.main/repl/read-eval-print/fn
main.clj: 239 clojure.main/repl/read-eval-print
main.clj: 257 clojure.main/repl/fn
main.clj: 257 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 67 clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 624 clojure.core/apply
core.clj: 1862 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 51 clojure.tools.nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 183 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
interruptible_eval.clj: 152 clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
AFn.java: 22 clojure.lang.AFn/run
ThreadPoolExecutor.java: 1142 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 745 java.lang.Thread/run
2. Caused by java.lang.ExceptionInInitializerError
(No message)
NativeConstructorAccessorImpl.java: -2 sun.reflect.NativeConstructorAccessorImpl/newInstance0
NativeConstructorAccessorImpl.java: 62 sun.reflect.NativeConstructorAccessorImpl/newInstance
DelegatingConstructorAccessorImpl.java: 45 sun.reflect.DelegatingConstructorAccessorImpl/newInstance
Constructor.java: 408 java.lang.reflect.Constructor/newInstance
Class.java: 433 java.lang.Class/newInstance
Compiler.java: 4764 clojure.lang.Compiler$ObjExpr/eval
Compiler.java: 6702 clojure.lang.Compiler/eval
Compiler.java: 6666 clojure.lang.Compiler/eval
core.clj: 2927 clojure.core/eval
verbose.clj: 32 io.pedestal.http.route.definition.verbose/resolve-interceptor
verbose.clj: 54 io.pedestal.http.route.definition.verbose/handler-map
verbose.clj: 83 io.pedestal.http.route.definition.verbose/generate-verb-terminal
AFn.java: 156 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 2468 clojure.core/partial/fn
RestFn.java: 408 clojure.lang.RestFn/invoke
core.clj: 2559 clojure.core/map/fn
LazySeq.java: 40 clojure.lang.LazySeq/sval
LazySeq.java: 49 clojure.lang.LazySeq/seq
RT.java: 484 clojure.lang.RT/seq
core.clj: 133 clojure.core/seq
core.clj: 685 clojure.core/concat/fn
LazySeq.java: 40 clojure.lang.LazySeq/sval
LazySeq.java: 56 clojure.lang.LazySeq/seq
RT.java: 484 clojure.lang.RT/seq
core.clj: 133 clojure.core/seq
core.clj: 2551 clojure.core/map/fn
LazySeq.java: 40 clojure.lang.LazySeq/sval
LazySeq.java: 49 clojure.lang.LazySeq/seq
Cons.java: 39 clojure.lang.Cons/next
RT.java: 598 clojure.lang.RT/next
core.clj: 64 clojure.core/next
protocols.clj: 146 clojure.core.protocols/fn
protocols.clj: 19 clojure.core.protocols/fn/G
protocols.clj: 31 clojure.core.protocols/seq-reduce
protocols.clj: 54 clojure.core.protocols/fn
protocols.clj: 13 clojure.core.protocols/fn/G
core.clj: 6289 clojure.core/reduce
verbose.clj: 154 io.pedestal.http.route.definition.verbose/prioritize-constraints
verbose.clj: 180 io.pedestal.http.route.definition.verbose/expand-verbose-routes
definition.clj: 206 io.pedestal.http.route.definition/eval13746/fn
definition.clj: 196 io.pedestal.http.route.definition/eval13725/fn/G
AFn.java: 154 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
Compiler.java: 3553 clojure.lang.Compiler$InvokeExpr/eval
Compiler.java: 417 clojure.lang.Compiler$DefExpr/eval
Compiler.java: 6708 clojure.lang.Compiler/eval
Compiler.java: 7130 clojure.lang.Compiler/load
REPL: 1 streaker-service.routes/eval19586
Compiler.java: 6703 clojure.lang.Compiler/eval
Compiler.java: 6666 clojure.lang.Compiler/eval
core.clj: 2927 clojure.core/eval
main.clj: 239 clojure.main/repl/read-eval-print/fn
main.clj: 239 clojure.main/repl/read-eval-print
main.clj: 257 clojure.main/repl/fn
main.clj: 257 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 67 clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 624 clojure.core/apply
core.clj: 1862 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 51 clojure.tools.nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 183 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
interruptible_eval.clj: 152 clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
AFn.java: 22 clojure.lang.AFn/run
ThreadPoolExecutor.java: 1142 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 745 java.lang.Thread/run
1. Caused by java.lang.IllegalArgumentException
No matching ctor found for class
streaker_service.routes$mk_coll_post$fn__19606
Reflector.java: 163 clojure.lang.Reflector/invokeConstructor
LispReader.java: 1043 clojure.lang.LispReader$EvalReader/invoke
LispReader.java: 616 clojure.lang.LispReader$DispatchReader/invoke
LispReader.java: 183 clojure.lang.LispReader/read
RT.java: 1737 clojure.lang.RT/readString
routes.clj: 54 streaker-service.routes/eval19620
NativeConstructorAccessorImpl.java: -2 sun.reflect.NativeConstructorAccessorImpl/newInstance0
NativeConstructorAccessorImpl.java: 62 sun.reflect.NativeConstructorAccessorImpl/newInstance
DelegatingConstructorAccessorImpl.java: 45 sun.reflect.DelegatingConstructorAccessorImpl/newInstance
Constructor.java: 408 java.lang.reflect.Constructor/newInstance
Class.java: 433 java.lang.Class/newInstance
Compiler.java: 4764 clojure.lang.Compiler$ObjExpr/eval
Compiler.java: 6702 clojure.lang.Compiler/eval
Compiler.java: 6666 clojure.lang.Compiler/eval
core.clj: 2927 clojure.core/eval
verbose.clj: 32 io.pedestal.http.route.definition.verbose/resolve-interceptor
verbose.clj: 54 io.pedestal.http.route.definition.verbose/handler-map
verbose.clj: 83 io.pedestal.http.route.definition.verbose/generate-verb-terminal
AFn.java: 156 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 2468 clojure.core/partial/fn
RestFn.java: 408 clojure.lang.RestFn/invoke
core.clj: 2559 clojure.core/map/fn
LazySeq.java: 40 clojure.lang.LazySeq/sval
LazySeq.java: 49 clojure.lang.LazySeq/seq
RT.java: 484 clojure.lang.RT/seq
core.clj: 133 clojure.core/seq
core.clj: 685 clojure.core/concat/fn
LazySeq.java: 40 clojure.lang.LazySeq/sval
LazySeq.java: 56 clojure.lang.LazySeq/seq
RT.java: 484 clojure.lang.RT/seq
core.clj: 133 clojure.core/seq
core.clj: 2551 clojure.core/map/fn
LazySeq.java: 40 clojure.lang.LazySeq/sval
LazySeq.java: 49 clojure.lang.LazySeq/seq
Cons.java: 39 clojure.lang.Cons/next
RT.java: 598 clojure.lang.RT/next
core.clj: 64 clojure.core/next
protocols.clj: 146 clojure.core.protocols/fn
protocols.clj: 19 clojure.core.protocols/fn/G
protocols.clj: 31 clojure.core.protocols/seq-reduce
protocols.clj: 54 clojure.core.protocols/fn
protocols.clj: 13 clojure.core.protocols/fn/G
core.clj: 6289 clojure.core/reduce
verbose.clj: 154 io.pedestal.http.route.definition.verbose/prioritize-constraints
verbose.clj: 180 io.pedestal.http.route.definition.verbose/expand-verbose-routes
definition.clj: 206 io.pedestal.http.route.definition/eval13746/fn
definition.clj: 196 io.pedestal.http.route.definition/eval13725/fn/G
AFn.java: 154 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
Compiler.java: 3553 clojure.lang.Compiler$InvokeExpr/eval
Compiler.java: 417 clojure.lang.Compiler$DefExpr/eval
Compiler.java: 6708 clojure.lang.Compiler/eval
Compiler.java: 7130 clojure.lang.Compiler/load
REPL: 1 streaker-service.routes/eval19586
Compiler.java: 6703 clojure.lang.Compiler/eval
Compiler.java: 6666 clojure.lang.Compiler/eval
core.clj: 2927 clojure.core/eval
main.clj: 239 clojure.main/repl/read-eval-print/fn
main.clj: 239 clojure.main/repl/read-eval-print
main.clj: 257 clojure.main/repl/fn
main.clj: 257 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 67 clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 624 clojure.core/apply
core.clj: 1862 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 51 clojure.tools.nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 183 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
interruptible_eval.clj: 152 clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
AFn.java: 22 clojure.lang.AFn/run
ThreadPoolExecutor.java: 1142 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 745 java.lang.Thread/run