From f87d42916f1ec4287daad29d6ffd4145dfc4b5cd Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Thu, 16 Feb 2017 09:46:55 -0500 Subject: Implement PUT /users/{user_id}/patch endpoint for APIv4 (#5418) --- app/user.go | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) (limited to 'app') 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) { -- cgit v1.2.3-1-g7c22