File: test_server.clj

package info (click to toggle)
rbac-client-clojure 1.1.5-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 288 kB
  • sloc: sh: 61; makefile: 27; xml: 11
file content (34 lines) | stat: -rw-r--r-- 979 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(ns puppetlabs.rbac-client.test-server
  (:require
   [ring.middleware.params :refer [wrap-params]]
   [ring.middleware.keyword-params :refer [wrap-keyword-params]]
   [ring.middleware.json :refer [wrap-json-body
                                 wrap-json-response]]
   [puppetlabs.trapperkeeper.core :as tk]))


(defn make-json-handler
  [response]
  (let [handler (fn handler
                  [request]
                  (-> response
                      (assoc-in [:body :_request] (dissoc request :body))
                      (assoc :headers {"Content-Type" "application/json"})))]
    (-> handler
        wrap-json-response
        (wrap-json-body {:keywords? true})
        wrap-keyword-params
        wrap-params)))

(defn non-json-error-handler
  [req]
  ({:status 404
    :body "Not Found"}))

(defn build-test-service
  [handler]
  (tk/service
   [[:WebserverService add-ring-handler]]
   (init [this context]
         (add-ring-handler handler)
         context)))