aboutsummaryrefslogtreecommitdiffhomepage
path: root/api/user.go
diff options
context:
space:
mode:
Diffstat (limited to 'api/user.go')
-rw-r--r--api/user.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/api/user.go b/api/user.go
index a231e8c..4e5fa82 100644
--- a/api/user.go
+++ b/api/user.go
@@ -33,7 +33,7 @@ func (c *Controller) CreateUser(w http.ResponseWriter, r *http.Request) {
return
}
- user, err := decodeUserPayload(r.Body)
+ user, err := decodeUserCreationPayload(r.Body)
if err != nil {
json.BadRequest(w, err)
return
@@ -73,17 +73,12 @@ func (c *Controller) UpdateUser(w http.ResponseWriter, r *http.Request) {
return
}
- user, err := decodeUserPayload(r.Body)
+ userChanges, err := decodeUserModificationPayload(r.Body)
if err != nil {
json.BadRequest(w, err)
return
}
- if err := user.ValidateUserModification(); err != nil {
- json.BadRequest(w, err)
- return
- }
-
originalUser, err := c.store.UserByID(userID)
if err != nil {
json.BadRequest(w, errors.New("Unable to fetch this user from the database"))
@@ -95,7 +90,12 @@ func (c *Controller) UpdateUser(w http.ResponseWriter, r *http.Request) {
return
}
- originalUser.Merge(user)
+ userChanges.Update(originalUser)
+ if err := originalUser.ValidateUserModification(); err != nil {
+ json.BadRequest(w, err)
+ return
+ }
+
if err = c.store.UpdateUser(originalUser); err != nil {
json.ServerError(w, errors.New("Unable to update this user"))
return