mirror of
https://github.com/spacebarchat/server.git
synced 2026-05-26 01:04:51 +00:00
Add internal status order enum
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
import { WebSocket, Payload } from "@spacebar/gateway";
|
||||
import { emitEvent, PresenceUpdateEvent, PrivateStatus, PublicStatus, PublicStatusOrder, Session, User } from "@spacebar/util";
|
||||
import { emitEvent, InternalStatusOrder, PresenceUpdateEvent, PrivateStatus, PublicStatus, PublicStatusOrder, Session, User } from "@spacebar/util";
|
||||
import { check } from "./instanceOf";
|
||||
import { ActivitySchema } from "@spacebar/schemas";
|
||||
|
||||
@@ -28,7 +28,7 @@ export async function onPresenceUpdate(this: WebSocket, { d }: Payload) {
|
||||
|
||||
if (d.status === "unknown") {
|
||||
const sessions = await Session.find({ where: { user_id: this.user_id } });
|
||||
d.status = sessions.sort((a, b) => PublicStatusOrder[a.getPublicStatus()] - PublicStatusOrder[b.getPublicStatus()])[0].getPublicStatus();
|
||||
d.status = sessions.sort((a, b) => InternalStatusOrder[a.status] - InternalStatusOrder[b.status])[0].getPublicStatus();
|
||||
}
|
||||
|
||||
await Session.update({ session_id: this.session_id }, { status: presence.status as PrivateStatus, activities: presence.activities });
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
// TODO: remove entity imports
|
||||
import { Activity, ClientStatus, Status } from "@spacebar/util";
|
||||
import { Activity, ClientStatus, SetPrivateStatus, Status } from "@spacebar/util";
|
||||
|
||||
export const ActivitySchema = {
|
||||
$afk: Boolean,
|
||||
@@ -75,7 +75,7 @@ export const ActivitySchema = {
|
||||
|
||||
export interface ActivitySchema {
|
||||
afk?: boolean;
|
||||
status: Status;
|
||||
status: SetPrivateStatus;
|
||||
activities?: Activity[];
|
||||
since?: number; // unix time (in milliseconds) of when the client went idle, or null if the client is not idle
|
||||
client_status?: ClientStatus;
|
||||
|
||||
@@ -23,7 +23,14 @@ export enum PublicStatusOrder {
|
||||
offline = 3,
|
||||
}
|
||||
|
||||
console.log(PublicStatusOrder);
|
||||
export enum InternalStatusOrder {
|
||||
online = 0,
|
||||
idle = 1,
|
||||
dnd = 2,
|
||||
invisible = 3,
|
||||
offline = 4,
|
||||
unknown = 5,
|
||||
}
|
||||
|
||||
export type PublicStatus = keyof typeof PublicStatusOrder;
|
||||
export type PrivateStatus = PublicStatus | "invisible";
|
||||
|
||||
Reference in New Issue
Block a user