aboutsummaryrefslogtreecommitdiff
path: root/clientapi/routing/routing.go
diff options
context:
space:
mode:
Diffstat (limited to 'clientapi/routing/routing.go')
-rw-r--r--clientapi/routing/routing.go23
1 files changed, 22 insertions, 1 deletions
diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go
index e0e3e33d..22bc77a0 100644
--- a/clientapi/routing/routing.go
+++ b/clientapi/routing/routing.go
@@ -480,7 +480,7 @@ func Setup(
return GetVisibility(req, rsAPI, vars["roomID"])
}),
).Methods(http.MethodGet, http.MethodOptions)
- // TODO: Add AS support
+
v3mux.Handle("/directory/list/room/{roomID}",
httputil.MakeAuthAPI("directory_list", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
@@ -490,6 +490,27 @@ func Setup(
return SetVisibility(req, rsAPI, device, vars["roomID"])
}),
).Methods(http.MethodPut, http.MethodOptions)
+ v3mux.Handle("/directory/list/appservice/{networkID}/{roomID}",
+ httputil.MakeAuthAPI("directory_list", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
+ if err != nil {
+ return util.ErrorResponse(err)
+ }
+ return SetVisibilityAS(req, rsAPI, device, vars["networkID"], vars["roomID"])
+ }),
+ ).Methods(http.MethodPut, http.MethodOptions)
+
+ // Undocumented endpoint
+ v3mux.Handle("/directory/list/appservice/{networkID}/{roomID}",
+ httputil.MakeAuthAPI("directory_list", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
+ if err != nil {
+ return util.ErrorResponse(err)
+ }
+ return SetVisibilityAS(req, rsAPI, device, vars["networkID"], vars["roomID"])
+ }),
+ ).Methods(http.MethodDelete, http.MethodOptions)
+
v3mux.Handle("/publicRooms",
httputil.MakeExternalAPI("public_rooms", func(req *http.Request) util.JSONResponse {
return GetPostPublicRooms(req, rsAPI, extRoomsProvider, federation, cfg)