aboutsummaryrefslogtreecommitdiff
path: root/userapi/inthttp/server.go
diff options
context:
space:
mode:
authorS7evinK <tfaelligen@gmail.com>2021-12-03 18:18:35 +0100
committerGitHub <noreply@github.com>2021-12-03 17:18:35 +0000
commit08a0278760b6d64ccacdb9ab47cd468f80243c57 (patch)
tree1ba1dc2606f38892a7c995484bbea85560a094e4 /userapi/inthttp/server.go
parentf9bac2f78aaed91a77cc1fe455a05899be2e2a12 (diff)
Add missing HTTP mode for userapi (#1982)
* Add missing internal api endpoint Signed-off-by: Till Faelligen <tfaelligen@gmail.com> * Add missing performKeyBackup endpoint * Add missing http mode for userapi * Fix failing tests * Add error checks * Fix sytest * Update startup logic for HTTP mode * Use userImpl for AS (annoying) * Don't send device list updates for appservice devices * Fix build Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Diffstat (limited to 'userapi/inthttp/server.go')
-rw-r--r--userapi/inthttp/server.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/userapi/inthttp/server.go b/userapi/inthttp/server.go
index 1c1cfdcd..ac05bcd0 100644
--- a/userapi/inthttp/server.go
+++ b/userapi/inthttp/server.go
@@ -16,6 +16,7 @@ package inthttp
import (
"encoding/json"
+ "fmt"
"net/http"
"github.com/gorilla/mux"
@@ -234,4 +235,32 @@ func AddRoutes(internalAPIMux *mux.Router, s api.UserInternalAPI) {
return util.JSONResponse{Code: http.StatusOK, JSON: &response}
}),
)
+ internalAPIMux.Handle(QueryKeyBackupPath,
+ httputil.MakeInternalAPI("queryKeyBackup", func(req *http.Request) util.JSONResponse {
+ request := api.QueryKeyBackupRequest{}
+ response := api.QueryKeyBackupResponse{}
+ if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
+ return util.MessageResponse(http.StatusBadRequest, err.Error())
+ }
+ s.QueryKeyBackup(req.Context(), &request, &response)
+ if response.Error != "" {
+ return util.ErrorResponse(fmt.Errorf("QueryKeyBackup: %s", response.Error))
+ }
+ return util.JSONResponse{Code: http.StatusOK, JSON: &response}
+ }),
+ )
+ internalAPIMux.Handle(PerformKeyBackupPath,
+ httputil.MakeInternalAPI("performKeyBackup", func(req *http.Request) util.JSONResponse {
+ request := api.PerformKeyBackupRequest{}
+ response := api.PerformKeyBackupResponse{}
+ if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
+ return util.MessageResponse(http.StatusBadRequest, err.Error())
+ }
+ err := s.PerformKeyBackup(req.Context(), &request, &response)
+ if err != nil {
+ return util.JSONResponse{Code: http.StatusBadRequest, JSON: &response}
+ }
+ return util.JSONResponse{Code: http.StatusOK, JSON: &response}
+ }),
+ )
}