summary refs log tree commit diff
path: root/util/src
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-10-17 00:39:54 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-10-17 00:39:54 +0200
commit0ea7d5f35cba312545d56bee8abc878fe34383a0 (patch)
tree8606217c7ecff9fe223b80a33e4f42270850ca14 /util/src
parent:sparkles: added session + memberlist event (diff)
downloadserver-0ea7d5f35cba312545d56bee8abc878fe34383a0.tar.xz
:sparkles: User presence/status
Diffstat (limited to 'util/src')
-rw-r--r--util/src/entities/Member.ts18
-rw-r--r--util/src/entities/Session.ts20
2 files changed, 33 insertions, 5 deletions
diff --git a/util/src/entities/Member.ts b/util/src/entities/Member.ts
index 12b0b49a..0f7be2a7 100644
--- a/util/src/entities/Member.ts
+++ b/util/src/entities/Member.ts
@@ -26,6 +26,22 @@ import { BaseClassWithoutId } from "./BaseClass";
 import { Ban, PublicGuildRelations } from ".";
 import { DiscordApiErrors } from "../util/Constants";
 
+export const MemberPrivateProjection: (keyof Member)[] = [
+	"id",
+	"guild",
+	"guild_id",
+	"deaf",
+	"joined_at",
+	"last_message_id",
+	"mute",
+	"nick",
+	"pending",
+	"premium_since",
+	"roles",
+	"settings",
+	"user",
+];
+
 @Entity("members")
 @Index(["id", "guild_id"], { unique: true })
 export class Member extends BaseClassWithoutId {
@@ -81,7 +97,7 @@ export class Member extends BaseClassWithoutId {
 	@Column()
 	pending: boolean;
 
-	@Column({ type: "simple-json" })
+	@Column({ type: "simple-json", select: false })
 	settings: UserGuildSettings;
 
 	@Column({ nullable: true })
diff --git a/util/src/entities/Session.ts b/util/src/entities/Session.ts
index 7cc325f5..ac5313f1 100644
--- a/util/src/entities/Session.ts
+++ b/util/src/entities/Session.ts
@@ -1,6 +1,8 @@
 import { User } from "./User";
 import { BaseClass } from "./BaseClass";
 import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
+import { Status } from "../interfaces/Status";
+import { Activity } from "../interfaces/Activity";
 
 //TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them
 
@@ -17,11 +19,13 @@ export class Session extends BaseClass {
 	user: User;
 
 	//TODO check, should be 32 char long hex string
-	@Column({ nullable: false })
+	@Column({ nullable: false, select: false })
 	session_id: string;
 
-	activities: []; //TODO
+	@Column({ type: "simple-json", nullable: true })
+	activities: Activity[] = [];
 
+	// TODO client_status
 	@Column({ type: "simple-json", select: false })
 	client_info: {
 		client: string;
@@ -29,6 +33,14 @@ export class Session extends BaseClass {
 		version: number;
 	};
 
-	@Column({ nullable: false })
-	status: string; //TODO enum
+	@Column({ nullable: false, type: "varchar" })
+	status: Status; //TODO enum
 }
+
+export const PrivateSessionProjection: (keyof Session)[] = [
+	"user_id",
+	"session_id",
+	"activities",
+	"client_info",
+	"status",
+];