Update Integration structure

This commit is contained in:
Nicolás Serna 2022-07-05 14:05:23 -03:00
parent ac32d41330
commit 4b89e81839

View File

@ -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;
}