aboutsummaryrefslogtreecommitdiffstats
path: root/src/chameleon/handler.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/chameleon/handler.clj')
-rw-r--r--src/chameleon/handler.clj22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/chameleon/handler.clj b/src/chameleon/handler.clj
index 7a4a5fe..2a4c0f7 100644
--- a/src/chameleon/handler.clj
+++ b/src/chameleon/handler.clj
@@ -26,20 +26,32 @@
(declare serialize de-serialize)
-(defresource entity-endpoint [id]
+(defresource resource-endpoint [type id]
:allowed-methods [:get]
:available-media-types ["application/json"]
:exists? (fn [ctx]
- (let [resource (-> (c-route/query @g-host id (-> ctx :request :params :t-k)))]
+ (let [resource (c-route/query @g-host id type (-> ctx
+ :request
+ :params
+ (select-keys [:t-t :t-k])))] ; Only pass through the allowable set of keys
(when (= (:status resource) 200)
- {::resource (-> resource :body json/parse-string (dissoc "_meta") (chameleon.aai-processor/from-gallifrey))})))
+ {::resource (-> resource
+ :body
+ json/parse-string
+ (dissoc "_meta")
+ (chameleon.aai-processor/from-gallifrey))})))
:existed? (fn [ctx]
- (when-let [status (-> (c-route/query @g-host id (-> ctx :request :params :t-k)) :status)]
+ (when-let [status (-> (c-route/query @g-host id type (-> ctx
+ :request
+ :params
+ (select-keys [:t-t :t-k]))) ;Only pass through the allowable set of keys
+ :status)]
(= status 410)))
:handle-ok ::resource)
(defroutes app-routes
- (GET "/entity/:id" [id] (entity-endpoint id))
+ (GET "/entity/:id" [id] (resource-endpoint "entity" id))
+ (GET "/relationship/:id" [id] (resource-endpoint "relationship" id))
(resources "/"))
(def handler