-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.clj
23 lines (20 loc) · 824 Bytes
/
server.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(ns minimal-api-lein.server
(:require [bidi.ring :refer [make-handler]]
[integrant.core :as ig]
[minimal-api-lein.middleware :refer [wrap-db wrap-kebab-case-keys]]
[ring.adapter.jetty :as jetty]
[ring.middleware.json :refer [wrap-json-params wrap-json-response]]
[ring.middleware.keyword-params :refer [wrap-keyword-params]]
[ring.middleware.params :refer [wrap-params]]))
(defmethod ig/init-key ::app [_ {:keys [routes db]}]
(-> (make-handler routes)
wrap-kebab-case-keys
wrap-keyword-params
wrap-json-params
wrap-json-response
wrap-params
(wrap-db db)))
(defmethod ig/init-key ::server [_ {:keys [app options]}]
(jetty/run-jetty app options))
(defmethod ig/halt-key! ::server [_ server]
(.stop server))