From 7818e8dd3cff1cba078acd52cda4f852d6422a92 Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Wed, 28 Sep 2022 16:39:05 +1000 Subject: [PATCH] Missed some schemas --- assets/schemas.json | Bin 1158399 -> 1160225 bytes .../channels/#channel_id/permissions.ts | 6 +--- src/api/routes/guilds/#guild_id/index.ts | 18 +----------- src/api/routes/users/@me/settings.ts | 2 -- src/gateway/events/Message.ts | 27 +++++++----------- .../ChannelPermissionOverwriteSchema.ts | 4 +++ src/util/schemas/GatewayPayloadSchema.ts | 8 ++++++ src/util/schemas/GuildUpdateSchema.ts | 17 +++++++++++ src/util/schemas/UserGuildSettingsSchema.ts | 9 ++++++ src/util/schemas/UserSettingsSchema.ts | 3 ++ src/util/schemas/index.ts | 4 +++ 11 files changed, 57 insertions(+), 41 deletions(-) create mode 100644 src/util/schemas/ChannelPermissionOverwriteSchema.ts create mode 100644 src/util/schemas/GatewayPayloadSchema.ts create mode 100644 src/util/schemas/GuildUpdateSchema.ts create mode 100644 src/util/schemas/UserGuildSettingsSchema.ts create mode 100644 src/util/schemas/UserSettingsSchema.ts diff --git a/assets/schemas.json b/assets/schemas.json index e545acb8a362d18de83dbdcabd19676512752447..a79ac85299683f097912b27e6b1d1c1abbe42961 100644 GIT binary patch delta 1562 zcmZ{jTSyd99LAa3?(D3yGlREK*|Z`=k<79JVbd}bHCNFtXta&nc)`sbc2+Gi*UF*? zD{R2?P!c_C5j`YE9EubP*_Se~%Y#pu4-u511Z6MP!FjOboL+zPo&Wj1|M}+6T*ckb z6=T5`7&f^H7Rtw{I1lw}ju`W}+$i2hz)gvxrFIN&rc?bSzT8fotRm=(rm4*~{U8HN zQt1xDweWH~?X~G+3>krn6>(Q1`-iCu*?|y>+hqt&+n;zx;`IQTjc!|&P7Wawf%jJa0>VhLq zm;jan9u|Jt;XFjJ1N1qk2)AB!b`VZN^zksxm)b;>`F z;eYML93!sa8KzPMv^5xZ)sy(QX_t<-2kGl-v6+^KWkV=v!1%yB;T3+?QWoU84I3Y1 z!1D=lCny|tWP#T&otdC?i1LCDK`sjfb~$%*h8|K4vtIF<`t`Im4*b=e&m0()9Icuf z?T(nU(QKeEay`H+Q4V)djdp~)0wJwOGu8YwFg4G6&Fm~0czRhLl-00#s|d{Z3yOHw zh-#+;!FIK)OACRILtN&Xo)x7g;1g&k->sigqnZ%_ib8D!bqjI|LgR|Rgw*^H45Y>uV+o=U#~{$$AkFQ(I*@E1i5 zxWa(NYAzXWizaQcRWrs|g{$n8?j6A1!P@$TbM6E_(c-x?Zi-M)DC8vN*PXQSJnkxjb&~B4kt}Ft~Ygtp@s8*0rZJL7XSbN delta 1269 zcmZ4Z!tMV}w++cjn-$WRa%>lfVBE{Hy`Yz^o_VuNv8fZLXw6%7U6eC zI15k`2vBu^AF_Gil)L?7F_&&IvT(x{t}`eaA?kEBxQnp}U#aFfhT?dL>guyRjF^G8 zJywxd3yUFIm$~iGV+fciGD~>t(G39#pE|+&10`S}RxXz0OGh`Pg?V~gHMhz18VM$K zj)KIJlGLKSfa!)4*`#^mq78H{W3^S3tQ4xJCnhk9ZO{46!idG(*V%j*vG{QAUcTw* z)&bL?r~rQu79ZC737!Z+4rPd&Jym&DxgrZgGKpt0zaYBDfo5B8=QqM)r5~q2G#25m bXn`;+?moCifC-E6lD`5Nfm*@L#8nFb?{v;b diff --git a/src/api/routes/channels/#channel_id/permissions.ts b/src/api/routes/channels/#channel_id/permissions.ts index 89be843f..0a816223 100644 --- a/src/api/routes/channels/#channel_id/permissions.ts +++ b/src/api/routes/channels/#channel_id/permissions.ts @@ -1,12 +1,11 @@ import { Channel, ChannelPermissionOverwrite, - ChannelPermissionOverwriteType, ChannelUpdateEvent, emitEvent, - getPermission, Member, Role, + ChannelPermissionOverwriteSchema } from "@fosscord/util"; import { Router, Response, Request } from "express"; import { HTTPError } from "lambert-server"; @@ -16,9 +15,6 @@ const router: Router = Router(); // TODO: Only permissions your bot has in the guild or channel can be allowed/denied (unless your bot has a MANAGE_ROLES overwrite in the channel) -export interface ChannelPermissionOverwriteSchema - extends ChannelPermissionOverwrite {} - router.put( "/:overwrite_id", route({ diff --git a/src/api/routes/guilds/#guild_id/index.ts b/src/api/routes/guilds/#guild_id/index.ts index 715a3835..04cb76c2 100644 --- a/src/api/routes/guilds/#guild_id/index.ts +++ b/src/api/routes/guilds/#guild_id/index.ts @@ -8,29 +8,13 @@ import { GuildUpdateEvent, handleFile, Member, - GuildCreateSchema, + GuildUpdateSchema, } from "@fosscord/util"; import { HTTPError } from "lambert-server"; import { route } from "@fosscord/api"; const router = Router(); -export interface GuildUpdateSchema extends Omit { - banner?: string | null; - splash?: string | null; - description?: string; - features?: string[]; - verification_level?: number; - default_message_notifications?: number; - system_channel_flags?: number; - explicit_content_filter?: number; - public_updates_channel_id?: string; - afk_timeout?: number; - afk_channel_id?: string; - preferred_locale?: string; - premium_progress_bar_enabled?: boolean; -} - router.get("/", route({}), async (req: Request, res: Response) => { const { guild_id } = req.params; diff --git a/src/api/routes/users/@me/settings.ts b/src/api/routes/users/@me/settings.ts index 30e5969c..4493fcc7 100644 --- a/src/api/routes/users/@me/settings.ts +++ b/src/api/routes/users/@me/settings.ts @@ -4,8 +4,6 @@ import { route } from "@fosscord/api"; const router = Router(); -export interface UserSettingsSchema extends Partial {} - router.get("/", route({}), async (req: Request, res: Response) => { const user = await User.findOneOrFail({ where: { id: req.user_id }, diff --git a/src/gateway/events/Message.ts b/src/gateway/events/Message.ts index e8cbe964..07a4e2a9 100644 --- a/src/gateway/events/Message.ts +++ b/src/gateway/events/Message.ts @@ -1,23 +1,16 @@ -import { CLOSECODES, OPCODES } from "../util/Constants"; -import { WebSocket, Payload } from "@fosscord/gateway"; +import { WebSocket, Payload, CLOSECODES, OPCODES } from "@fosscord/gateway"; +import OPCodeHandlers from "../opcodes"; +import { check } from "../opcodes/instanceOf"; +import WS from "ws"; +import { PayloadSchema } from "@fosscord/util"; +import * as Sentry from "@sentry/node"; +import BigIntJson from "json-bigint"; +const bigIntJson = BigIntJson({ storeAsString: true }); + var erlpack: any; try { erlpack = require("@yukikaze-bot/erlpack"); -} catch (error) {} -import OPCodeHandlers from "../opcodes"; -import { Tuple } from "lambert-server"; -import { check } from "../opcodes/instanceOf"; -import WS from "ws"; -import BigIntJson from "json-bigint"; -import * as Sentry from "@sentry/node"; -const bigIntJson = BigIntJson({ storeAsString: true }); - -const PayloadSchema = { - op: Number, - $d: new Tuple(Object, Number), // or number for heartbeat sequence - $s: Number, - $t: String, -}; +} catch (error) { } export async function Message(this: WebSocket, buffer: WS.Data) { // TODO: compression diff --git a/src/util/schemas/ChannelPermissionOverwriteSchema.ts b/src/util/schemas/ChannelPermissionOverwriteSchema.ts new file mode 100644 index 00000000..6d6d6c34 --- /dev/null +++ b/src/util/schemas/ChannelPermissionOverwriteSchema.ts @@ -0,0 +1,4 @@ +import { ChannelPermissionOverwrite } from "@fosscord/util"; + +export interface ChannelPermissionOverwriteSchema + extends ChannelPermissionOverwrite {} \ No newline at end of file diff --git a/src/util/schemas/GatewayPayloadSchema.ts b/src/util/schemas/GatewayPayloadSchema.ts new file mode 100644 index 00000000..324ad1eb --- /dev/null +++ b/src/util/schemas/GatewayPayloadSchema.ts @@ -0,0 +1,8 @@ +import { Tuple } from "lambert-server"; + +export const PayloadSchema = { + op: Number, + $d: new Tuple(Object, Number), // or number for heartbeat sequence + $s: Number, + $t: String, +}; \ No newline at end of file diff --git a/src/util/schemas/GuildUpdateSchema.ts b/src/util/schemas/GuildUpdateSchema.ts new file mode 100644 index 00000000..fb2ac4f2 --- /dev/null +++ b/src/util/schemas/GuildUpdateSchema.ts @@ -0,0 +1,17 @@ +import { GuildCreateSchema } from "@fosscord/util"; + +export interface GuildUpdateSchema extends Omit { + banner?: string | null; + splash?: string | null; + description?: string; + features?: string[]; + verification_level?: number; + default_message_notifications?: number; + system_channel_flags?: number; + explicit_content_filter?: number; + public_updates_channel_id?: string; + afk_timeout?: number; + afk_channel_id?: string; + preferred_locale?: string; + premium_progress_bar_enabled?: boolean; +} diff --git a/src/util/schemas/UserGuildSettingsSchema.ts b/src/util/schemas/UserGuildSettingsSchema.ts new file mode 100644 index 00000000..43028c58 --- /dev/null +++ b/src/util/schemas/UserGuildSettingsSchema.ts @@ -0,0 +1,9 @@ +import { UserGuildSettings, ChannelOverride } from "@fosscord/util"; + +// This sucks. I would use a DeepPartial, my own or typeorms, but they both generate inncorect schema +export interface UserGuildSettingsSchema + extends Partial> { + channel_overrides: { + [channel_id: string]: Partial; + }; +} \ No newline at end of file diff --git a/src/util/schemas/UserSettingsSchema.ts b/src/util/schemas/UserSettingsSchema.ts new file mode 100644 index 00000000..db015457 --- /dev/null +++ b/src/util/schemas/UserSettingsSchema.ts @@ -0,0 +1,3 @@ +import { UserSettings } from "@fosscord/util"; + +export interface UserSettingsSchema extends Partial {} \ No newline at end of file diff --git a/src/util/schemas/index.ts b/src/util/schemas/index.ts index ae80de71..ba9e71e4 100644 --- a/src/util/schemas/index.ts +++ b/src/util/schemas/index.ts @@ -39,3 +39,7 @@ export * from "./VoiceVideoSchema"; export * from "./IdentifySchema"; export * from "./ActivitySchema"; export * from "./LazyRequestSchema"; +export * from "./GuildUpdateSchema"; +export * from "./ChannelPermissionOverwriteSchema"; +export * from "./UserGuildSettingsSchema"; +export * from "./GatewayPayloadSchema" \ No newline at end of file