Add Client.fetchInvite

This commit is contained in:
Amish Shah
2016-09-11 18:19:49 +01:00
parent 07f4a20f77
commit 3dab19a3bc
4 changed files with 27 additions and 7 deletions

File diff suppressed because one or more lines are too long

View File

@@ -191,6 +191,15 @@ class Client extends EventEmitter {
return this.rest.methods.getUser(id);
}
/**
* Fetches an invite object from an invite code.
* @param {string} code the invite code.
* @returns {Promise<Invite, Error>}
*/
fetchInvite(code) {
return this.rest.methods.getInvite(code);
}
/**
* Returns a Collection, mapping Guild ID to Voice Connections.
* @readonly

View File

@@ -477,6 +477,14 @@ class RESTMethods {
});
}
getInvite(code) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('get', Constants.Endpoints.invite(code), true)
.then(invite => resolve(new Invite(this.rest.client, invite)))
.catch(reject);
});
}
getGuildInvites(guild) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('get', Constants.Endpoints.guildInvites(guild.id), true).then(inviteItems => {

View File

@@ -23,7 +23,8 @@ const PartialGuildChannel = require('./PartialGuildChannel');
*/
/**
* Represents an Invitation to a Guild Channel
* Represents an Invitation to a Guild Channel.
* <warn>The only guaranteed properties are `code`, `guild` and `channel`. Other properties can be missing.</warn>
*/
class Invite {
constructor(client, data) {
@@ -75,11 +76,13 @@ class Invite {
*/
this.maxUses = data.max_uses;
/**
* The user who created this invite
* @type {User}
*/
this.inviter = this.client.dataManager.newUser(data.inviter);
if (data.inviter) {
/**
* The user who created this invite
* @type {User}
*/
this.inviter = this.client.dataManager.newUser(data.inviter);
}
/**
* The Channel the invite is for. If this Channel is already known, this will be a GuildChannel object.