add hub event sending

This commit is contained in:
cos
2026-05-08 11:11:28 +02:00
parent 40acd753ac
commit 53652d1f79
7 changed files with 330 additions and 43 deletions
+52
View File
@@ -152,6 +152,32 @@ func HandleSetUserAvatar(response http.ResponseWriter, request *http.Request) {
})
}
user.Mu.RLock()
hubs := slices.Collect(maps.Values(user.Hubs))
user.Mu.RUnlock()
for _, hub := range hubs {
hub.Mu.RLock()
hubUsers := slices.Collect(maps.Values(hub.Users))
hub.Mu.RUnlock()
for _, hubUser := range hubUsers {
if hubUser.OriginalId == user.Id {
continue
}
target, err := getUserById(ctx, hubUser.OriginalId)
if err != nil {
continue
}
wsServer.WsSendMessageCloseIfTimeout(target, &types.WsHubSpecificHubEventMessage{
Type: WsEventType.UserAvatarChange,
HubId: hub.Id,
Event: &map[string]any{
"userId": user.Id,
},
})
}
}
response.WriteHeader(http.StatusCreated)
}
@@ -273,6 +299,32 @@ func HandleSetUserProfileBg(response http.ResponseWriter, request *http.Request)
})
}
user.Mu.RLock()
hubs := slices.Collect(maps.Values(user.Hubs))
user.Mu.RUnlock()
for _, hub := range hubs {
hub.Mu.RLock()
hubUsers := slices.Collect(maps.Values(hub.Users))
hub.Mu.RUnlock()
for _, hubUser := range hubUsers {
if hubUser.OriginalId == user.Id {
continue
}
target, err := getUserById(ctx, hubUser.OriginalId)
if err != nil {
continue
}
wsServer.WsSendMessageCloseIfTimeout(target, &types.WsHubSpecificHubEventMessage{
Type: WsEventType.UserProfileBgChange,
HubId: hub.Id,
Event: &map[string]any{
"userId": user.Id,
},
})
}
}
response.WriteHeader(http.StatusCreated)
}