diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-02-16 09:46:55 -0500 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-02-16 09:46:55 -0500 |
commit | f87d42916f1ec4287daad29d6ffd4145dfc4b5cd (patch) | |
tree | dd0296f0023efe031dbacbb39b724540bed2d8a5 /app | |
parent | 8f262241595cc9377e4c3adce9c728eaff38c5f3 (diff) | |
download | chat-f87d42916f1ec4287daad29d6ffd4145dfc4b5cd.tar.gz chat-f87d42916f1ec4287daad29d6ffd4145dfc4b5cd.tar.bz2 chat-f87d42916f1ec4287daad29d6ffd4145dfc4b5cd.zip |
Implement PUT /users/{user_id}/patch endpoint for APIv4 (#5418)
Diffstat (limited to 'app')
-rw-r--r-- | app/user.go | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/app/user.go b/app/user.go index c34bf87e3..a0cb2a49f 100644 --- a/app/user.go +++ b/app/user.go @@ -858,13 +858,37 @@ func UpdateUserAsUser(user *model.User, siteURL string, asAdmin bool) (*model.Us SanitizeProfile(updatedUser, asAdmin) + sendUpdatedUserEvent(updatedUser) + + return updatedUser, nil +} + +func PatchUser(userId string, patch *model.UserPatch, siteURL string, asAdmin bool) (*model.User, *model.AppError) { + user, err := GetUser(userId) + if err != nil { + return nil, err + } + + user.Patch(patch) + + updatedUser, err := UpdateUser(user, siteURL, true) + if err != nil { + return nil, err + } + + SanitizeProfile(updatedUser, asAdmin) + + sendUpdatedUserEvent(updatedUser) + + return updatedUser, nil +} + +func sendUpdatedUserEvent(user *model.User) { omitUsers := make(map[string]bool, 1) - omitUsers[updatedUser.Id] = true + omitUsers[user.Id] = true message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_UPDATED, "", "", "", omitUsers) - message.Add("user", updatedUser) + message.Add("user", user) go Publish(message) - - return updatedUser, nil } func UpdateUser(user *model.User, siteURL string, sendNotifications bool) (*model.User, *model.AppError) { |