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 21:11:08 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-09-02 21:11:08 +0200
commit0326fd4aef6d215629bc7788d508ad83c47a72de (patch)
treeaddc34af32d1e0118f232a182ecc74cd6421ffe9 /util/src
parent:sparkles: add user_id field to Member (diff)
parentMerge pull request #306 from AlTech98/master (diff)
downloadserver-0326fd4aef6d215629bc7788d508ad83c47a72de.tar.xz
Merge branch 'master' of https://github.com/fosscord/fosscord-api
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";