summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-03-17 15:27:20 +0800
committereltrac <hi@eltr.ac>2026-03-17 15:27:20 +0800
commit589a461bc53aace1cbbdd76048c69806063ff74a (patch)
tree84cdda9bad5258ab09144d1a8111245310037128 /src
parent738e28fbf6c49d69f9a1db9f28b701abd0407bec (diff)
refactor: use nested routes
Diffstat (limited to 'src')
-rw-r--r--src/weepinbell/handler.clj22
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