feature(Webhook): allow to edit the channel of webhooks (#2039)

This commit is contained in:
SpaceEEC
2017-10-19 07:01:20 +02:00
committed by Crawl
parent 68a30584db
commit d8850dbdd8

View File

@@ -244,19 +244,22 @@ class Webhook {
* @param {Object} options Options * @param {Object} options Options
* @param {string} [options.name=this.name] New name for this webhook * @param {string} [options.name=this.name] New name for this webhook
* @param {BufferResolvable} [options.avatar] New avatar for this webhook * @param {BufferResolvable} [options.avatar] New avatar for this webhook
* @param {ChannelResolvable} [options.channel] New channel for this webhook
* @param {string} [reason] Reason for editing this webhook * @param {string} [reason] Reason for editing this webhook
* @returns {Promise<Webhook>} * @returns {Promise<Webhook>}
*/ */
edit({ name = this.name, avatar }, reason) { edit({ name = this.name, avatar, channel }, reason) {
if (avatar && (typeof avatar === 'string' && !avatar.startsWith('data:'))) { if (avatar && (typeof avatar === 'string' && !avatar.startsWith('data:'))) {
return DataResolver.resolveImage(avatar).then(image => this.edit({ name, avatar: image }, reason)); return DataResolver.resolveImage(avatar).then(image => this.edit({ name, avatar: image }, reason));
} }
return this.client.api.webhooks(this.id, this.token).patch({ if (channel) channel = this.client.channels.resolveID(channel);
data: { name, avatar }, return this.client.api.webhooks(this.id, channel ? undefined : this.token).patch({
data: { name, avatar, channel_id: channel },
reason, reason,
}).then(data => { }).then(data => {
this.name = data.name; this.name = data.name;
this.avatar = data.avatar; this.avatar = data.avatar;
this.channelID = data.channel_id;
return this; return this;
}); });
} }