update clientUser#setAvatar (#819)

* WHO DID THIS

* e

* some people have base64 fetishes i guess

Signed-off-by: Gus Caplan <fluffyrobotcheese@gmail.com>
This commit is contained in:
Gus Caplan
2016-10-24 00:09:38 -05:00
committed by Schuyler Cebulskie
parent 478377ac52
commit 44bae385c2
3 changed files with 14 additions and 7 deletions

File diff suppressed because one or more lines are too long

View File

@@ -90,16 +90,24 @@ class ClientUser extends User {
/** /**
* Set the avatar of the logged in Client. * Set the avatar of the logged in Client.
* @param {Base64Resolvable} avatar The new avatar * @param {FileResolvable|Base64Resolveable} avatar The new avatar
* @returns {Promise<ClientUser>} * @returns {Promise<ClientUser>}
* @example * @example
* // set avatar * // set avatar
* client.user.setAvatar(fs.readFileSync('./avatar.png')) * client.user.setAvatar('./avatar.png')
* .then(user => console.log(`New avatar set!`)) * .then(user => console.log(`New avatar set!`))
* .catch(console.error); * .catch(console.error);
*/ */
setAvatar(avatar) { setAvatar(avatar) {
return this.client.rest.methods.updateCurrentUser({ avatar }); return new Promise(resolve => {
if (avatar.startsWith('data:')) {
resolve(this.client.rest.methods.updateCurrentUser({ avatar }));
} else {
this.client.resolver.resolveFile(avatar).then(data => {
resolve(this.client.rest.methods.updateCurrentUser({ avatar: data }));
});
}
});
} }
/** /**

View File

@@ -176,12 +176,11 @@ class Webhook {
* @param {FileResolvable} avatar The new avatar for the Webhook. * @param {FileResolvable} avatar The new avatar for the Webhook.
* @returns {Promise<Webhook>} * @returns {Promise<Webhook>}
*/ */
edit(name, avatar) { edit(name = this.name, avatar) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (avatar) { if (avatar) {
this.client.resolver.resolveFile(avatar).then(file => { this.client.resolver.resolveFile(avatar).then(file => {
let base64 = new Buffer(file, 'binary').toString('base64'); const dataURI = this.client.resolver.resolveBase64(file);
let dataURI = `data:;base64,${base64}`;
this.client.rest.methods.editWebhook(this, name, dataURI) this.client.rest.methods.editWebhook(this, name, dataURI)
.then(resolve).catch(reject); .then(resolve).catch(reject);
}).catch(reject); }).catch(reject);