(ns auto-ap.handler (:require [compojure.core :refer :all] [compojure.route :as route] [clojure.java.io :as io] [clojure.string :as str] [auto-ap.routes.invoices :as invoices] [auto-ap.db.users :as users] [ring.middleware.multipart-params :as mp] [ring.util.response :as response] [ring.middleware.defaults :refer [wrap-defaults site-defaults]] [ring.middleware.params :refer [wrap-params]] [ring.middleware.reload :refer [wrap-reload]] [ring.middleware.edn :refer [wrap-edn-params]] [clojure.java.jdbc :as j] [config.core :refer [env]] [buddy.auth.backends.token :refer [jws-backend]] [buddy.auth.middleware :refer [wrap-authorization wrap-authentication]] [auto-ap.routes.companies :as companies] [auto-ap.routes.vendors :as vendors] [auto-ap.routes.reminders :as reminders] [auto-ap.routes.auth :as auth] [amazonica.core :refer [defcredential]])) (defcredential "AKIAIRKDGLBX7J7VJZ6Q" "OtRw2t/xktJBDjP8Jnx1Yf6G+uzBfIkrQEc6nmgo" "us-east-1") (defroutes static-routes (GET "/" [] (response/resource-response "index.html" {:root "public"})) (route/resources "/") (routes (ANY "*" [] (response/resource-response "index.html" {:root "public"})))) (defroutes api-routes (context "/api" [] invoices/routes companies/routes vendors/routes reminders/routes auth/routes)) (def auth-backend (jws-backend {:secret (:jwt-secret env) :options {:alg :hs512}})) (def app-routes (routes api-routes static-routes)) (def app (-> #'app-routes (wrap-authorization auth-backend) (wrap-authentication auth-backend) (wrap-reload) (wrap-params) (mp/wrap-multipart-params) (wrap-edn-params)))