Skip to content

Commit

Permalink
feat(Invite): add deletable getter (#3203)
Browse files Browse the repository at this point in the history
* add Invite#deletable

* fix ci

* reee

* since guild is nullable

* accommodate for external invites

* nit(Invite): use guild instead of channel.guild
  • Loading branch information
izexi authored and SpaceEEC committed Apr 22, 2019
1 parent f7f4607 commit c4b7957
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
13 changes: 13 additions & 0 deletions src/structures/Invite.js
@@ -1,6 +1,7 @@
'use strict';

const { Endpoints } = require('../util/Constants');
const Permissions = require('../util/Permissions');
const Base = require('./Base');

/**
Expand Down Expand Up @@ -91,6 +92,18 @@ class Invite extends Base {
return this.createdTimestamp ? new Date(this.createdTimestamp) : null;
}

/**
* Whether the invite is deletable by the client user
* @type {boolean}
* @readonly
*/
get deletable() {
const guild = this.guild;
if (!guild || !this.client.guilds.has(guild.id)) return false;
return this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_CHANNELS, false) ||
guild.me.permissions.has(Permissions.FLAGS.MANAGE_GUILD);
}

/**
* The timestamp the invite will expire at
* @type {?number}
Expand Down
3 changes: 2 additions & 1 deletion typings/index.d.ts
Expand Up @@ -615,7 +615,8 @@ declare module 'discord.js' {
constructor(client: Client, data: object);
public channel: GuildChannel;
public code: string;
public readonly createdAt: Date;
public readonly deletable: boolean;
public readonly createdAt: Date | null;
public createdTimestamp: number | null;
public readonly expiresAt: Date | null;
public readonly expiresTimestamp: number | null;
Expand Down

0 comments on commit c4b7957

Please sign in to comment.