mirror of
https://github.com/spacebarchat/server.git
synced 2026-03-30 13:55:39 +00:00
Migrate PresenceUpdateEvent to satisfies, part of #1577
This commit is contained in:
@@ -91,7 +91,7 @@ router.patch(
|
||||
client_status: session?.client_status,
|
||||
status: session.getPublicStatus(),
|
||||
},
|
||||
} as PresenceUpdateEvent),
|
||||
} satisfies PresenceUpdateEvent),
|
||||
session.save(),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -77,23 +77,19 @@ export async function Close(this: WebSocket, code: number, reason: Buffer) {
|
||||
status: "offline",
|
||||
};
|
||||
|
||||
// TODO
|
||||
// If a user was deleted, they may still be connected to gateway,
|
||||
// which will cause this to throw when they disconnect.
|
||||
// just send the ID of the user instead of the full correct payload for now
|
||||
const userOrId = await User.getPublicUser(this.user_id).catch(() => ({
|
||||
id: this.user_id,
|
||||
}));
|
||||
const user = await User.getPublicUser(this.user_id).catch(() => undefined);
|
||||
|
||||
await emitEvent({
|
||||
event: "PRESENCE_UPDATE",
|
||||
user_id: this.user_id,
|
||||
data: {
|
||||
user: userOrId,
|
||||
activities: session.activities,
|
||||
client_status: session?.client_status,
|
||||
status: session.getPublicStatus?.() ?? session.status,
|
||||
},
|
||||
} as PresenceUpdateEvent);
|
||||
// Special case: dont emit a presence update for deleted users
|
||||
if (user !== undefined)
|
||||
await emitEvent({
|
||||
event: "PRESENCE_UPDATE",
|
||||
user_id: this.user_id,
|
||||
data: {
|
||||
user: user,
|
||||
activities: session.activities,
|
||||
client_status: session?.client_status,
|
||||
status: session.getPublicStatus?.() ?? session.status,
|
||||
},
|
||||
} satisfies PresenceUpdateEvent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -585,7 +585,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
|
||||
client_status: this.session!.client_status,
|
||||
status: this.session!.getPublicStatus(),
|
||||
},
|
||||
} as PresenceUpdateEvent),
|
||||
} satisfies PresenceUpdateEvent),
|
||||
),
|
||||
]);
|
||||
|
||||
|
||||
@@ -39,10 +39,10 @@ export async function onPresenceUpdate(this: WebSocket, { d }: Payload) {
|
||||
data: {
|
||||
user: await User.getPublicUser(this.user_id),
|
||||
status: session.getPublicStatus(),
|
||||
activities: presence.activities,
|
||||
activities: presence.activities ?? [],
|
||||
client_status: session.client_status,
|
||||
},
|
||||
} as PresenceUpdateEvent);
|
||||
} satisfies PresenceUpdateEvent);
|
||||
|
||||
console.log(`Presence update for user ${this.user_id} processed in ${Date.now() - startTime}ms`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user