Update to use util.JSONResponse (#18)

This commit is contained in:
Kegsay 2017-02-24 12:32:27 +00:00 committed by GitHub
parent a9b296c522
commit 45d1e61a9d
8 changed files with 218 additions and 160 deletions

View file

@ -7,11 +7,8 @@ import (
)
// Sync implements /sync
func Sync(req *http.Request) (interface{}, *util.HTTPError) {
func Sync(req *http.Request) util.JSONResponse {
logger := util.GetLogger(req.Context())
logger.Info("Doing stuff...")
return nil, &util.HTTPError{
Code: 404,
Message: "Not implemented yet",
}
return util.MessageResponse(404, "Not implemented yet")
}

View file

@ -17,11 +17,11 @@ const pathPrefixR0 = "/_matrix/client/r0"
func Setup(servMux *http.ServeMux, httpClient *http.Client) {
apiMux := mux.NewRouter()
r0mux := apiMux.PathPrefix(pathPrefixR0).Subrouter()
r0mux.Handle("/sync", make("sync", wrap(func(req *http.Request) (interface{}, *util.HTTPError) {
r0mux.Handle("/sync", make("sync", wrap(func(req *http.Request) util.JSONResponse {
return readers.Sync(req)
})))
r0mux.Handle("/rooms/{roomID}/send/{eventType}",
make("send_message", wrap(func(req *http.Request) (interface{}, *util.HTTPError) {
make("send_message", wrap(func(req *http.Request) util.JSONResponse {
vars := mux.Vars(req)
return writers.SendMessage(req, vars["roomID"], vars["eventType"])
})),
@ -38,12 +38,12 @@ func make(metricsName string, h util.JSONRequestHandler) http.Handler {
// jsonRequestHandlerWrapper is a wrapper to allow in-line functions to conform to util.JSONRequestHandler
type jsonRequestHandlerWrapper struct {
function func(req *http.Request) (interface{}, *util.HTTPError)
function func(req *http.Request) util.JSONResponse
}
func (r *jsonRequestHandlerWrapper) OnIncomingRequest(req *http.Request) (interface{}, *util.HTTPError) {
func (r *jsonRequestHandlerWrapper) OnIncomingRequest(req *http.Request) util.JSONResponse {
return r.function(req)
}
func wrap(f func(req *http.Request) (interface{}, *util.HTTPError)) *jsonRequestHandlerWrapper {
func wrap(f func(req *http.Request) util.JSONResponse) *jsonRequestHandlerWrapper {
return &jsonRequestHandlerWrapper{f}
}

View file

@ -7,11 +7,8 @@ import (
)
// SendMessage implements /rooms/{roomID}/send/{eventType}
func SendMessage(req *http.Request, roomID, eventType string) (interface{}, *util.HTTPError) {
func SendMessage(req *http.Request, roomID, eventType string) util.JSONResponse {
logger := util.GetLogger(req.Context())
logger.WithField("roomID", roomID).WithField("eventType", eventType).Info("Doing stuff...")
return nil, &util.HTTPError{
Code: 404,
Message: "Not implemented yet",
}
return util.MessageResponse(404, "Not implemented yet")
}