handler.clj 877 B

1234567891011121314151617181920212223242526
  1. (ns attendant.handler
  2. (:require
  3. [compojure.core :refer [defroutes ANY OPTIONS]]
  4. [compojure.route :refer [not-found]]
  5. [ring.util.response :refer [header]]))
  6. (defroutes app
  7. (OPTIONS "*" [] "")
  8. (ANY "/" [] "attendant server")
  9. (not-found "nothing here (yet)"))
  10. (defn make-handler []
  11. (fn [req]
  12. (let [body (some-> req
  13. :body
  14. (slurp)
  15. (not-empty)
  16. (read-string))
  17. new-req (cond-> req
  18. body (update :params merge body))]
  19. (-> (#'app new-req)
  20. (header "Access-Control-Allow-Methods" "GET, DELETE, POST, PUT, OPTIONS")
  21. (header "Access-Control-Allow-Origin" (get-in req [:headers "origin"]))
  22. (header "Access-Control-Allow-Credentials" "true")
  23. (header "Access-Control-Allow-Headers" "Content-Type")))))