fix: User updates are not synced between clients (#6490)

* Add Model.changeset method to get minified changes since last update

* fix: Handle arrays

* Add changes column, types

* test
This commit is contained in:
Tom Moor
2024-02-04 10:36:43 -08:00
committed by GitHub
parent 06ab5e5f44
commit 234613580d
11 changed files with 295 additions and 55 deletions

View File

@@ -15,6 +15,7 @@ import {
Subscription,
Notification,
UserMembership,
User,
} from "@server/models";
import {
presentComment,
@@ -27,6 +28,7 @@ import {
presentSubscription,
presentTeam,
presentMembership,
presentUser,
} from "@server/presenters";
import presentNotification from "@server/presenters/notification";
import { Event } from "../../types";
@@ -667,6 +669,19 @@ export default class WebsocketsProcessor {
.emit(event.name, presentTeam(team));
}
case "users.update": {
const user = await User.findByPk(event.userId);
if (!user) {
return;
}
socketio
.to(`user-${event.userId}`)
.emit(event.name, presentUser(user, { includeDetails: true }));
socketio.to(`team-${user.teamId}`).emit(event.name, presentUser(user));
return;
}
case "users.demote": {
return socketio
.to(`user-${event.userId}`)