aboutsummaryrefslogtreecommitdiff
path: root/publicroomsapi/routing/routing.go
diff options
context:
space:
mode:
Diffstat (limited to 'publicroomsapi/routing/routing.go')
-rw-r--r--publicroomsapi/routing/routing.go79
1 files changed, 0 insertions, 79 deletions
diff --git a/publicroomsapi/routing/routing.go b/publicroomsapi/routing/routing.go
deleted file mode 100644
index 9c82d350..00000000
--- a/publicroomsapi/routing/routing.go
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2017 Vector Creations Ltd
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package routing
-
-import (
- "net/http"
-
- "github.com/matrix-org/dendrite/internal/httputil"
- "github.com/matrix-org/dendrite/roomserver/api"
- userapi "github.com/matrix-org/dendrite/userapi/api"
-
- "github.com/gorilla/mux"
- "github.com/matrix-org/dendrite/publicroomsapi/directory"
- "github.com/matrix-org/dendrite/publicroomsapi/storage"
- "github.com/matrix-org/dendrite/publicroomsapi/types"
- "github.com/matrix-org/gomatrixserverlib"
- "github.com/matrix-org/util"
-)
-
-const pathPrefixR0 = "/client/r0"
-
-// Setup configures the given mux with publicroomsapi server listeners
-//
-// Due to Setup being used to call many other functions, a gocyclo nolint is
-// applied:
-// nolint: gocyclo
-func Setup(
- publicAPIMux *mux.Router, userAPI userapi.UserInternalAPI, publicRoomsDB storage.Database, rsAPI api.RoomserverInternalAPI,
- fedClient *gomatrixserverlib.FederationClient, extRoomsProvider types.ExternalPublicRoomsProvider,
-) {
- r0mux := publicAPIMux.PathPrefix(pathPrefixR0).Subrouter()
-
- r0mux.Handle("/directory/list/room/{roomID}",
- httputil.MakeExternalAPI("directory_list", func(req *http.Request) util.JSONResponse {
- vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
- if err != nil {
- return util.ErrorResponse(err)
- }
- return directory.GetVisibility(req, publicRoomsDB, vars["roomID"])
- }),
- ).Methods(http.MethodGet, http.MethodOptions)
- // TODO: Add AS support
- r0mux.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))
- if err != nil {
- return util.ErrorResponse(err)
- }
- return directory.SetVisibility(req, publicRoomsDB, rsAPI, device, vars["roomID"])
- }),
- ).Methods(http.MethodPut, http.MethodOptions)
- r0mux.Handle("/publicRooms",
- httputil.MakeExternalAPI("public_rooms", func(req *http.Request) util.JSONResponse {
- if extRoomsProvider != nil {
- return directory.GetPostPublicRoomsWithExternal(req, publicRoomsDB, fedClient, extRoomsProvider)
- }
- return directory.GetPostPublicRooms(req, publicRoomsDB)
- }),
- ).Methods(http.MethodGet, http.MethodPost, http.MethodOptions)
-
- // Federation - TODO: should this live here or in federation API? It's sure easier if it's here so here it is.
- publicAPIMux.Handle("/federation/v1/publicRooms",
- httputil.MakeExternalAPI("federation_public_rooms", func(req *http.Request) util.JSONResponse {
- return directory.GetPostPublicRooms(req, publicRoomsDB)
- }),
- ).Methods(http.MethodGet)
-}