Skip to content

Commit

Permalink
feat(ClientApplication): Approximate guild count and new GET route (#…
Browse files Browse the repository at this point in the history
…9713)

* feat: add approx guild count and get route

* refactor: replace route

* docs: update description of class

The replacement route justifies this change.

* feat(ClientApplication): add `approximateGuildCount`

* refactor: revert now-unnecessary changes
  • Loading branch information
Jiralite committed Aug 11, 2023
1 parent 3b18e5b commit 632a9b4
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 3 deletions.
35 changes: 32 additions & 3 deletions packages/discord.js/src/structures/ClientApplication.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const PermissionsBitField = require('../util/PermissionsBitField');
*/

/**
* Represents a Client OAuth2 Application.
* Represents a client application.
* @extends {Application}
*/
class ClientApplication extends Application {
Expand Down Expand Up @@ -69,6 +69,26 @@ class ClientApplication extends Application {
this.flags = new ApplicationFlagsBitField(data.flags).freeze();
}

if ('approximate_guild_count' in data) {
/**
* An approximate amount of guilds this application is in.
* @type {?number}
*/
this.approximateGuildCount = data.approximate_guild_count;
} else {
this.approximateGuildCount ??= null;
}

if ('guild_id' in data) {
/**
* The id of the guild associated with this application.
* @type {?Snowflake}
*/
this.guildId = data.guild_id;
} else {
this.guildId ??= null;
}

if ('cover_image' in data) {
/**
* The hash of the application's cover image
Expand Down Expand Up @@ -130,6 +150,15 @@ class ClientApplication extends Application {
: this.owner ?? null;
}

/**
* The guild associated with this application.
* @type {?Guild}
* @readonly
*/
get guild() {
return this.client.guilds.cache.get(this.guildId) ?? null;
}

/**
* Whether this application is partial
* @type {boolean}
Expand All @@ -144,8 +173,8 @@ class ClientApplication extends Application {
* @returns {Promise<ClientApplication>}
*/
async fetch() {
const app = await this.client.rest.get(Routes.oauth2CurrentApplication());
this._patch(app);
const data = await this.client.rest.get(Routes.currentApplication());
this._patch(data);
return this;
}

Expand Down
3 changes: 3 additions & 0 deletions packages/discord.js/typings/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1012,8 +1012,11 @@ export class ClientApplication extends Application {
public botPublic: boolean | null;
public botRequireCodeGrant: boolean | null;
public commands: ApplicationCommandManager;
public guildId: Snowflake | null;
public get guild(): Guild | null;
public cover: string | null;
public flags: Readonly<ApplicationFlagsBitField>;
public approximateGuildCount: number | null;
public tags: string[];
public installParams: ClientApplicationInstallParams | null;
public customInstallURL: string | null;
Expand Down

0 comments on commit 632a9b4

Please sign in to comment.