summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2023-07-29 16:59:21 +1000
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2023-07-29 16:59:21 +1000
commita0d93fb252803c5fded8723d092ae0f394d1b40b (patch)
tree14fad3cb255ee0c6a3f82e0f9634910e79d05f95 /src
parentMerge branch 'master' into feat/refactorIdentify (diff)
downloadserver-a0d93fb252803c5fded8723d092ae0f394d1b40b.tar.xz
* call toJSON of keys in gateway when using erlpack
* dont send bitrate/etc as null when should be undefined
* set user flags to number instead of string
* send empty 'threads' in identify when not using new state v2
Diffstat (limited to 'src')
-rw-r--r--src/api/routes/guilds/#guild_id/index.ts2
-rw-r--r--src/gateway/opcodes/Identify.ts2
-rw-r--r--src/util/dtos/ReadyGuildDTO.ts4
-rw-r--r--src/util/entities/Channel.ts12
-rw-r--r--src/util/entities/Guild.ts7
-rw-r--r--src/util/entities/User.ts2
-rw-r--r--src/util/util/JSON.ts10
7 files changed, 35 insertions, 4 deletions
diff --git a/src/api/routes/guilds/#guild_id/index.ts b/src/api/routes/guilds/#guild_id/index.ts

index afe60614..86777b36 100644 --- a/src/api/routes/guilds/#guild_id/index.ts +++ b/src/api/routes/guilds/#guild_id/index.ts
@@ -161,7 +161,7 @@ router.patch( const data = guild.toJSON(); // TODO: guild hashes // TODO: fix vanity_url_code, template_id - delete data.vanity_url_code; + // delete data.vanity_url_code; delete data.template_id; await Promise.all([ diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts
index 837ae351..0f91df3e 100644 --- a/src/gateway/opcodes/Identify.ts +++ b/src/gateway/opcodes/Identify.ts
@@ -265,6 +265,8 @@ export async function onIdentify(this: WebSocket, data: Payload) { return { ...member.guild.toJSON(), joined_at: member.joined_at, + + threads: [], }; }); diff --git a/src/util/dtos/ReadyGuildDTO.ts b/src/util/dtos/ReadyGuildDTO.ts
index 7ca268a0..905ede74 100644 --- a/src/util/dtos/ReadyGuildDTO.ts +++ b/src/util/dtos/ReadyGuildDTO.ts
@@ -49,12 +49,12 @@ export interface ReadyPrivateChannel { export type GuildOrUnavailable = | { id: string; unavailable: boolean } - | (Guild & { joined_at?: Date; unavailable: boolean }); + | (Guild & { joined_at?: Date; unavailable: undefined }); const guildIsAvailable = ( guild: GuildOrUnavailable, ): guild is Guild & { joined_at: Date; unavailable: false } => { - return guild.unavailable == false; + return guild.unavailable != true; }; export interface IReadyGuildDTO { diff --git a/src/util/entities/Channel.ts b/src/util/entities/Channel.ts
index 19a7a41a..38627c39 100644 --- a/src/util/entities/Channel.ts +++ b/src/util/entities/Channel.ts
@@ -468,6 +468,18 @@ export class Channel extends BaseClass { ]; return disallowedChannelTypes.indexOf(this.type) == -1; } + + toJSON() { + return { + ...this, + + // these fields are not returned depending on the type of channel + bitrate: this.bitrate || undefined, + user_limit: this.user_limit || undefined, + rate_limit_per_user: this.rate_limit_per_user || undefined, + owner_id: this.owner_id || undefined, + }; + } } export interface ChannelPermissionOverwrite { diff --git a/src/util/entities/Guild.ts b/src/util/entities/Guild.ts
index 4c2949a3..e364ed98 100644 --- a/src/util/entities/Guild.ts +++ b/src/util/entities/Guild.ts
@@ -390,4 +390,11 @@ export class Guild extends BaseClass { return guild; } + + toJSON() { + return { + ...this, + unavailable: this.unavailable == false ? undefined : true, + }; + } } diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts
index 68d7b5e8..3f1bda05 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts
@@ -175,7 +175,7 @@ export class User extends BaseClass { email?: string; // email of the user @Column() - flags: string = "0"; // UserFlags // TODO: generate + flags: number = 0; // UserFlags // TODO: generate @Column() public_flags: number = 0; diff --git a/src/util/util/JSON.ts b/src/util/util/JSON.ts
index 1c39b66e..c7dcf47e 100644 --- a/src/util/util/JSON.ts +++ b/src/util/util/JSON.ts
@@ -27,6 +27,16 @@ const JSONReplacer = function ( return (this[key] as Date).toISOString().replace("Z", "+00:00"); } + // erlpack encoding doesn't call json.stringify, + // so our toJSON functions don't get called. + // manually call it here + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + if (this?.[key]?.toJSON) + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + this[key] = this[key].toJSON(); + return value; };