1 files changed, 24 insertions, 0 deletions
diff --git a/src/gateway/opcodes/GuildSubscriptionsBulk.ts b/src/gateway/opcodes/GuildSubscriptionsBulk.ts
new file mode 100644
index 00000000..f0a431c8
--- /dev/null
+++ b/src/gateway/opcodes/GuildSubscriptionsBulk.ts
@@ -0,0 +1,24 @@
+import { WebSocket, Payload } from "@spacebar/gateway";
+import { onLazyRequest } from "./LazyRequest";
+import { GuildSubscriptionsBulkSchema } from "@spacebar/util";
+import { check } from "./instanceOf";
+
+export async function onGuildSubscriptionsBulk(
+ this: WebSocket,
+ payload: Payload,
+) {
+ check.call(this, GuildSubscriptionsBulkSchema, payload.d);
+ const body = payload.d as GuildSubscriptionsBulkSchema;
+
+ let guildId: keyof GuildSubscriptionsBulkSchema["subscriptions"];
+
+ for (guildId in body.subscriptions) {
+ await onLazyRequest.call(this, {
+ ...payload,
+ d: {
+ guild_id: guildId,
+ ...body.subscriptions[guildId],
+ },
+ });
+ }
+}
|