summary refs log tree commit diff
path: root/util/src
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-09-02 20:20:15 +0200
committerGitHub <noreply@github.com>2021-09-02 20:20:15 +0200
commit6cd7d7230e8918ff292e7a48f1b7426d0e53e6ca (patch)
tree46fd326a827a2586428a8e4fca951e9f5366120a /util/src
parent:art: update openapi title (diff)
parent:sparkles: add editor config (diff)
downloadserver-6cd7d7230e8918ff292e7a48f1b7426d0e53e6ca.tar.xz
Merge pull request #306 from AlTech98/master
Gateway VOICE_STATE_UPDATE and sessions implementation, fix #210
Diffstat (limited to 'util/src')
-rw-r--r--util/src/entities/Config.ts11
-rw-r--r--util/src/entities/Session.ts32
-rw-r--r--util/src/entities/VoiceState.ts12
-rw-r--r--util/src/entities/index.ts1
4 files changed, 55 insertions, 1 deletions
diff --git a/util/src/entities/Config.ts b/util/src/entities/Config.ts

index 03ff823b..fd830db8 100644 --- a/util/src/entities/Config.ts +++ b/util/src/entities/Config.ts
@@ -271,7 +271,16 @@ export const DefaultConfigOptions: ConfigValue = { regions: { default: "fosscord", useDefaultAsOptimal: true, - available: [{ id: "fosscord", name: "Fosscord", endpoint: "127.0.0.1", vip: false, custom: false, deprecated: false }], + available: [ + { + id: "fosscord", + name: "Fosscord", + endpoint: "127.0.0.1:3004", + vip: false, + custom: false, + deprecated: false, + }, + ], }, rabbitmq: { host: null, diff --git a/util/src/entities/Session.ts b/util/src/entities/Session.ts new file mode 100644
index 00000000..d42a8f98 --- /dev/null +++ b/util/src/entities/Session.ts
@@ -0,0 +1,32 @@ +import { User } from "./User"; +import { BaseClass } from "./BaseClass"; +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; + +//TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them + +@Entity("sessions") +export class Session extends BaseClass { + @Column({ nullable: true }) + @RelationId((session: Session) => session.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User) + user: User; + + //TODO check, should be 32 char long hex string + @Column({ nullable: false }) + session_id: string; + + activities: []; //TODO + + @Column({ type: "simple-json", select: false }) + client_info: { + client: string; + os: string; + version: number; + }; + + @Column({ nullable: false }) + status: string; //TODO enum +} diff --git a/util/src/entities/VoiceState.ts b/util/src/entities/VoiceState.ts
index c5040cf1..d7a032c7 100644 --- a/util/src/entities/VoiceState.ts +++ b/util/src/entities/VoiceState.ts
@@ -3,7 +3,9 @@ import { BaseClass } from "./BaseClass"; import { Channel } from "./Channel"; import { Guild } from "./Guild"; import { User } from "./User"; +import { Member } from "./Member"; +//https://gist.github.com/vassjozsef/e482c65df6ee1facaace8b3c9ff66145#file-voice_state-ex @Entity("voice_states") export class VoiceState extends BaseClass { @Column({ nullable: true }) @@ -30,9 +32,16 @@ export class VoiceState extends BaseClass { @ManyToOne(() => User) user: User; + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => Member) + member: Member; + @Column() session_id: string; + @Column({ nullable: true }) + token: string; + @Column() deaf: boolean; @@ -53,4 +62,7 @@ export class VoiceState extends BaseClass { @Column() suppress: boolean; // whether this user is muted by the current user + + @Column({ nullable: true, default: null }) + request_to_speak_timestamp?: Date; } diff --git a/util/src/entities/index.ts b/util/src/entities/index.ts
index aa37ae2e..7b1c9750 100644 --- a/util/src/entities/index.ts +++ b/util/src/entities/index.ts
@@ -16,6 +16,7 @@ export * from "./ReadState"; export * from "./Recipient"; export * from "./Relationship"; export * from "./Role"; +export * from "./Session"; export * from "./Sticker"; export * from "./Team"; export * from "./TeamMember";