diff options
| author | eltrac <hi@eltr.ac> | 2026-03-17 15:27:20 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-03-17 15:27:20 +0800 |
| commit | 589a461bc53aace1cbbdd76048c69806063ff74a (patch) | |
| tree | 84cdda9bad5258ab09144d1a8111245310037128 | |
| parent | 738e28fbf6c49d69f9a1db9f28b701abd0407bec (diff) | |
refactor: use nested routes
| -rw-r--r-- | src/weepinbell/handler.clj | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/weepinbell/handler.clj b/src/weepinbell/handler.clj index a52206b..82bc55b 100644 --- a/src/weepinbell/handler.clj +++ b/src/weepinbell/handler.clj @@ -1,5 +1,5 @@ (ns weepinbell.handler - (:require [compojure.core :refer [defroutes POST GET]] + (:require [compojure.core :refer [defroutes POST GET context]] [compojure.route :as route] [ring.middleware.defaults :refer [wrap-defaults api-defaults]] [weepinbell.config :refer [get-config]] @@ -16,14 +16,18 @@ ;; receiver endpoint (POST (get-config :endpoint) [source target] (receive {:s source :t target} wmc)) - ;; query webmentions - (GET "/api/mentions/" [url] (retriever/by-url url)) - (GET "/api/mentions/:domain" [domain] (retriever/by-domain domain)) - (GET "/api/mentions/:domain/:path" [domain path] (retriever/by-domain-path domain path)) - (GET "/api/mentions/all" [filter] (retriever/all filter)) - ;; query one specific webmention - (GET "/api/mention/:id" [id] (retriever/by-id id)) - (GET "/api/mention" [source target] (retriever/by-st-pair source target)) + ;; query API routes + (context "/api" [] + ;; query webmention list + (context "/mentions" [] + (GET "/" [url] (retriever/by-url url)) + (GET "/:domain" [domain] (retriever/by-domain domain)) + (GET "/:domain/:path" [domain path] (retriever/by-domain-path domain path)) + (GET "/all" [filter] (retriever/all filter))) + ;; query one specific webmention + (context "/mention" [] + (GET "/mention/:id" [id] (retriever/by-id id)) + (GET "/mention" [source target] (retriever/by-st-pair source target)))) ;; host proxied avatars (microformats photos) (route/files "/avatars/" {:root "data/avatars"}) ;; 404 |
