From 4b89e81839e369dd15bf8dc9d3501429b5bca064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Serna?= Date: Tue, 5 Jul 2022 14:05:23 -0300 Subject: [PATCH] Update Integration structure --- structures/Integration.ts | 41 ++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/structures/Integration.ts b/structures/Integration.ts index 3514250..45a0de7 100644 --- a/structures/Integration.ts +++ b/structures/Integration.ts @@ -3,11 +3,22 @@ import type { Snowflake } from "../util/Snowflake.ts"; import type { Session } from "../session/Session.ts"; import type { DiscordIntegration, - DiscordIntegrationAccount, - DiscordIntegrationApplication, - DiscordUser, IntegrationExpireBehaviors } from "../vendor/external.ts"; +import User from "./User.ts" + +export interface IntegrationAccount { + id: Snowflake; + name: string; +} + +export interface IntegrationApplication { + id: Snowflake; + name: string; + icon?: string; + description: string; + bot?: User; +} export class Integration implements Model { constructor(session: Session, data: DiscordIntegration & { guild_id?: Snowflake }) { @@ -28,9 +39,21 @@ export class Integration implements Model { this.subscriberCount = data.subscriber_count; this.revoked = !!data.revoked; - this.user = data.user; - this.account = data.account; - this.application = data.application; + this.user = data.user ? new User(session, data.user) : undefined; + this.account = { + id: data.account.id, + name: data.account.name + } + + if (data.application) { + this.application = { + id: data.application.id, + name: data.application.name, + icon: data.application.icon ? data.application.icon : undefined, + description: data.application.description, + bot: data.application.bot ? new User(session, data.application.bot) : undefined + }; + } } id: Snowflake; @@ -49,7 +72,7 @@ export class Integration implements Model { subscriberCount?: number; revoked?: boolean; - user?: DiscordUser; - account: DiscordIntegrationAccount; - application?: DiscordIntegrationApplication; + user?: User; + account: IntegrationAccount; + application?: IntegrationApplication; } \ No newline at end of file