summaryrefslogtreecommitdiff
path: root/src/chef/routes.clj
blob: 27d6dfd4ae49d309ee6a16a62d40b15cad805390 (plain)
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 chef.routes
  (:require [reitit.ring :as rring]
            [ring.middleware.oauth2 :as rmoauth2]
            [ring.middleware.params :as rmparams]
            [ring.middleware.session :as rmsession]
            [dotenv :as env]
            [clojure.string :as cstr]

            [chef.pages.home :as cphome]
            [chef.pages.admin :as cpadmin]

            [chef.components.search :as ccsearch]))

(def router [["/" {:get {:handler cphome/handler}}]
             ["/admin/" {:get {:handler cpadmin/handler}}]
             ["/static/*" (rring/create-resource-handler)]

             ["/components"
              ["/search" {:get {:handler ccsearch/handler}}]]])

(def ring-handler (delay (-> router
                             rring/router
                             (rring/ring-handler (rring/redirect-trailing-slash-handler))
                             (rmoauth2/wrap-oauth2 {:auth {:authorize-uri    (env/env "OAUTH_AUTH_URI")
                                                           :access-token-uri (env/env "OAUTH_ACCESS_TOKEN_URI")
                                                           :client-id        (env/env "OAUTH_CLIENT_ID")
                                                           :client-secret    (env/env "OAUTH_CLIENT_SECRET")
                                                           :scopes           (cstr/split (env/env "OAUTH_SCOPES") #",")
                                                           :launch-uri       "/auth"
                                                           :redirect-uri     "/auth/callback"
                                                           :landing-uri      "/"
                                                           :pkce?            true}})
                             rmparams/wrap-params
                             rmsession/wrap-session)))