aboutsummaryrefslogtreecommitdiff
path: root/appservice/inthttp/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'appservice/inthttp/server.go')
-rw-r--r--appservice/inthttp/server.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/appservice/inthttp/server.go b/appservice/inthttp/server.go
new file mode 100644
index 00000000..1900635a
--- /dev/null
+++ b/appservice/inthttp/server.go
@@ -0,0 +1,43 @@
+package inthttp
+
+import (
+ "encoding/json"
+ "net/http"
+
+ "github.com/gorilla/mux"
+ "github.com/matrix-org/dendrite/appservice/api"
+ "github.com/matrix-org/dendrite/internal"
+ "github.com/matrix-org/util"
+)
+
+// AddRoutes adds the AppServiceQueryAPI handlers to the http.ServeMux.
+func AddRoutes(a api.AppServiceQueryAPI, internalAPIMux *mux.Router) {
+ internalAPIMux.Handle(
+ AppServiceRoomAliasExistsPath,
+ internal.MakeInternalAPI("appserviceRoomAliasExists", func(req *http.Request) util.JSONResponse {
+ var request api.RoomAliasExistsRequest
+ var response api.RoomAliasExistsResponse
+ if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
+ return util.ErrorResponse(err)
+ }
+ if err := a.RoomAliasExists(req.Context(), &request, &response); err != nil {
+ return util.ErrorResponse(err)
+ }
+ return util.JSONResponse{Code: http.StatusOK, JSON: &response}
+ }),
+ )
+ internalAPIMux.Handle(
+ AppServiceUserIDExistsPath,
+ internal.MakeInternalAPI("appserviceUserIDExists", func(req *http.Request) util.JSONResponse {
+ var request api.UserIDExistsRequest
+ var response api.UserIDExistsResponse
+ if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
+ return util.ErrorResponse(err)
+ }
+ if err := a.UserIDExists(req.Context(), &request, &response); err != nil {
+ return util.ErrorResponse(err)
+ }
+ return util.JSONResponse{Code: http.StatusOK, JSON: &response}
+ }),
+ )
+}