From 1f58b37a5e86603b16e137031c36f37580e9d410 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Sun, 7 Oct 2018 18:42:43 -0700 Subject: Refactor HTTP response builder --- api/user.go | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'api/user.go') diff --git a/api/user.go b/api/user.go index b9274bb..db1e049 100644 --- a/api/user.go +++ b/api/user.go @@ -16,7 +16,7 @@ import ( func (c *Controller) CurrentUser(w http.ResponseWriter, r *http.Request) { user, err := c.store.UserByID(request.UserID(r)) if err != nil { - json.ServerError(w, err) + json.ServerError(w, r, err) return } @@ -26,85 +26,85 @@ func (c *Controller) CurrentUser(w http.ResponseWriter, r *http.Request) { // CreateUser is the API handler to create a new user. func (c *Controller) CreateUser(w http.ResponseWriter, r *http.Request) { if !request.IsAdminUser(r) { - json.Forbidden(w) + json.Forbidden(w, r) return } user, err := decodeUserCreationPayload(r.Body) if err != nil { - json.BadRequest(w, err) + json.BadRequest(w, r, err) return } if err := user.ValidateUserCreation(); err != nil { - json.BadRequest(w, err) + json.BadRequest(w, r, err) return } if c.store.UserExists(user.Username) { - json.BadRequest(w, errors.New("This user already exists")) + json.BadRequest(w, r, errors.New("This user already exists")) return } err = c.store.CreateUser(user) if err != nil { - json.ServerError(w, err) + json.ServerError(w, r, err) return } user.Password = "" - json.Created(w, user) + json.Created(w, r, user) } // UpdateUser is the API handler to update the given user. func (c *Controller) UpdateUser(w http.ResponseWriter, r *http.Request) { if !request.IsAdminUser(r) { - json.Forbidden(w) + json.Forbidden(w, r) return } userID := request.RouteInt64Param(r, "userID") userChanges, err := decodeUserModificationPayload(r.Body) if err != nil { - json.BadRequest(w, err) + json.BadRequest(w, r, err) return } originalUser, err := c.store.UserByID(userID) if err != nil { - json.BadRequest(w, errors.New("Unable to fetch this user from the database")) + json.BadRequest(w, r, errors.New("Unable to fetch this user from the database")) return } if originalUser == nil { - json.NotFound(w, errors.New("User not found")) + json.NotFound(w, r) return } userChanges.Update(originalUser) if err := originalUser.ValidateUserModification(); err != nil { - json.BadRequest(w, err) + json.BadRequest(w, r, err) return } if err = c.store.UpdateUser(originalUser); err != nil { - json.ServerError(w, err) + json.ServerError(w, r, err) return } - json.Created(w, originalUser) + json.Created(w, r, originalUser) } // Users is the API handler to get the list of users. func (c *Controller) Users(w http.ResponseWriter, r *http.Request) { if !request.IsAdminUser(r) { - json.Forbidden(w) + json.Forbidden(w, r) return } users, err := c.store.Users() if err != nil { - json.ServerError(w, err) + json.ServerError(w, r, err) return } @@ -115,19 +115,19 @@ func (c *Controller) Users(w http.ResponseWriter, r *http.Request) { // UserByID is the API handler to fetch the given user by the ID. func (c *Controller) UserByID(w http.ResponseWriter, r *http.Request) { if !request.IsAdminUser(r) { - json.Forbidden(w) + json.Forbidden(w, r) return } userID := request.RouteInt64Param(r, "userID") user, err := c.store.UserByID(userID) if err != nil { - json.BadRequest(w, errors.New("Unable to fetch this user from the database")) + json.BadRequest(w, r, errors.New("Unable to fetch this user from the database")) return } if user == nil { - json.NotFound(w, errors.New("User not found")) + json.NotFound(w, r) return } @@ -138,19 +138,19 @@ func (c *Controller) UserByID(w http.ResponseWriter, r *http.Request) { // UserByUsername is the API handler to fetch the given user by the username. func (c *Controller) UserByUsername(w http.ResponseWriter, r *http.Request) { if !request.IsAdminUser(r) { - json.Forbidden(w) + json.Forbidden(w, r) return } username := request.RouteStringParam(r, "username") user, err := c.store.UserByUsername(username) if err != nil { - json.BadRequest(w, errors.New("Unable to fetch this user from the database")) + json.BadRequest(w, r, errors.New("Unable to fetch this user from the database")) return } if user == nil { - json.NotFound(w, errors.New("User not found")) + json.NotFound(w, r) return } @@ -160,26 +160,26 @@ func (c *Controller) UserByUsername(w http.ResponseWriter, r *http.Request) { // RemoveUser is the API handler to remove an existing user. func (c *Controller) RemoveUser(w http.ResponseWriter, r *http.Request) { if !request.IsAdminUser(r) { - json.Forbidden(w) + json.Forbidden(w, r) return } userID := request.RouteInt64Param(r, "userID") user, err := c.store.UserByID(userID) if err != nil { - json.ServerError(w, err) + json.ServerError(w, r, err) return } if user == nil { - json.NotFound(w, errors.New("User not found")) + json.NotFound(w, r) return } if err := c.store.RemoveUser(user.ID); err != nil { - json.BadRequest(w, errors.New("Unable to remove this user from the database")) + json.BadRequest(w, r, errors.New("Unable to remove this user from the database")) return } - json.NoContent(w) + json.NoContent(w, r) } -- cgit v1.2.3