105221d

website.git ยท Tickets

website.git > main > 105221d > files / src / dev / grahp / website / middleware.clj

Return an internal server error when the a request fails

Grahp, 2026-11-04

Commit: 105221d1ed0712853edaeb79bf04b111069661c5 (latest)
Parent: 40e2b5d

3 changed files:

deps.edn modified (view file)

@@ -4,5 +4,6 @@             :extra-deps {nrepl/nrepl {:mvn/version "1.8.0"}}}}  :deps  {org.clojure/clojure {:mvn/version "1.13.0-alpha9"}+  org.clojure/tools.logging {:mvn/version "1.3.1"}   ring/ring-core {:mvn/version "1.8.2"}   ring/ring-jetty-adapter {:mvn/version "1.8.2"}}}

src/dev/grahp/website/middleware.clj added (view file)

@@ -0,0 +1,15 @@+(ns dev.grahp.website.middleware+  (:require+   [clojure.tools.logging :as log]))++(defn wrap-errors+  "Returns an Internal Server Error when the app throws an Exception."+  [app]+  (fn [request]+    (try (app request)+         (catch Exception e+           (log/error e)+           (flush)+           {:status 500+            :headers {"Content-Type" "text/html"}+            :body "Internal server error! D:\n\nPlease tell Grahp!"}))))

src/dev/grahp/website/server.clj modified (view file)

@@ -1,5 +1,6 @@ (ns dev.grahp.website.server   (:require+   [dev.grahp.website.middleware :refer [wrap-errors]]    [dev.grahp.website.path :as path]    [ring.adapter.jetty :refer [run-jetty]]    [ring.middleware.file :refer [wrap-file]]@@ -17,6 +18,7 @@    (-> #'handler        (wrap-file "/srv/website/files" {:index-files? false})        (wrap-resource "files")-       (path/wrap-path))+       (path/wrap-path)+       (wrap-errors))    {:port 8000     :host "127.0.0.1"}))