1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-06-27 16:36:00 +00:00

Improve feed and user API updates with optional values

This commit is contained in:
Frédéric Guillot 2018-06-23 16:16:54 -07:00
parent cd77ebd742
commit 7039df9af1
12 changed files with 685 additions and 508 deletions

View file

@ -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