summaryrefslogtreecommitdiff
path: root/src/chef/routes.clj
blob: c2fd6c7c120b9c2b01871cfe5b9037fc30839de9 (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
(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]))

(def router [["/" {:get {:handler cphome/handler}}]
             ["/admin/" {:get {:handler cpadmin/handler}}]
             ["/static/*" (rring/create-resource-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)))