summaryrefslogtreecommitdiffstats
path: root/app/user.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-02-16 09:46:55 -0500
committerHarrison Healey <harrisonmhealey@gmail.com>2017-02-16 09:46:55 -0500
commitf87d42916f1ec4287daad29d6ffd4145dfc4b5cd (patch)
treedd0296f0023efe031dbacbb39b724540bed2d8a5 /app/user.go
parent8f262241595cc9377e4c3adce9c728eaff38c5f3 (diff)
downloadchat-f87d42916f1ec4287daad29d6ffd4145dfc4b5cd.tar.gz
chat-f87d42916f1ec4287daad29d6ffd4145dfc4b5cd.tar.bz2
chat-f87d42916f1ec4287daad29d6ffd4145dfc4b5cd.zip
Implement PUT /users/{user_id}/patch endpoint for APIv4 (#5418)
Diffstat (limited to 'app/user.go')
-rw-r--r--app/user.go32
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) {