From 4d4978b1ae91c87dadff992fe787fcddc97e2141 Mon Sep 17 00:00:00 2001 From: Till Faelligen <2353100+S7evinK@users.noreply.github.com> Date: Wed, 26 Oct 2022 13:45:11 +0200 Subject: [PATCH] Use single function to get protocols --- clientapi/routing/routing.go | 6 +++--- clientapi/routing/thirdparty.go | 33 +++++++++------------------------ 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go index 140aec743..b1a439a2d 100644 --- a/clientapi/routing/routing.go +++ b/clientapi/routing/routing.go @@ -843,17 +843,17 @@ func Setup( v3mux.Handle("/thirdparty/protocols", httputil.MakeAuthAPI("thirdparty_protocols", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse { - return Protocols(req, asAPI, device) + return Protocols(req, asAPI, device, "") }), ).Methods(http.MethodGet, http.MethodOptions) v3mux.Handle("/thirdparty/protocol/{protocolID}", - httputil.MakeAuthAPI("thirdparty_protocol", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse { + httputil.MakeAuthAPI("thirdparty_protocols", 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 Protocol(req, asAPI, device, vars["protocolID"]) + return Protocols(req, asAPI, device, vars["protocolID"]) }), ).Methods(http.MethodGet, http.MethodOptions) diff --git a/clientapi/routing/thirdparty.go b/clientapi/routing/thirdparty.go index 6b78c0684..e757cd411 100644 --- a/clientapi/routing/thirdparty.go +++ b/clientapi/routing/thirdparty.go @@ -27,30 +27,9 @@ import ( // Protocols implements // -// GET /_matrix/client/v3/thirdparty/protocols -func Protocols(req *http.Request, asAPI appserviceAPI.AppServiceInternalAPI, device *api.Device) util.JSONResponse { - resp := &appserviceAPI.ProtocolResponse{} - - if err := asAPI.Protocols(req.Context(), &appserviceAPI.ProtocolRequest{Protocol: ""}, resp); err != nil { - return jsonerror.InternalServerError() - } - if !resp.Exists { - return util.JSONResponse{ - Code: http.StatusNotFound, - JSON: jsonerror.NotFound("No protocols registered"), - } - } - return util.JSONResponse{ - Code: http.StatusOK, - JSON: resp.Protocols, - } -} - -// Protocol implements -// // GET /_matrix/client/v3/thirdparty/protocols/{protocol} -func Protocol(req *http.Request, asAPI appserviceAPI.AppServiceInternalAPI, device *api.Device, protocol string) util.JSONResponse { - +// GET /_matrix/client/v3/thirdparty/protocols +func Protocols(req *http.Request, asAPI appserviceAPI.AppServiceInternalAPI, device *api.Device, protocol string) util.JSONResponse { resp := &appserviceAPI.ProtocolResponse{} if err := asAPI.Protocols(req.Context(), &appserviceAPI.ProtocolRequest{Protocol: protocol}, resp); err != nil { @@ -62,9 +41,15 @@ func Protocol(req *http.Request, asAPI appserviceAPI.AppServiceInternalAPI, devi JSON: jsonerror.NotFound("The protocol is unknown."), } } + if protocol != "" { + return util.JSONResponse{ + Code: http.StatusOK, + JSON: resp.Protocols[protocol], + } + } return util.JSONResponse{ Code: http.StatusOK, - JSON: resp.Protocols[protocol], + JSON: resp.Protocols, } }