From 87b4b23596796fc351aafa87c497c601e3a8f306 Mon Sep 17 00:00:00 2001 From: Lewdcario Date: Fri, 3 Aug 2018 15:33:51 -0600 Subject: [PATCH] backport: fix circular conversion when editing RichEmbed --- src/client/rest/RESTMethods.js | 3 +++ src/structures/RichEmbed.js | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/client/rest/RESTMethods.js b/src/client/rest/RESTMethods.js index 1dd054b9b..e44796e06 100644 --- a/src/client/rest/RESTMethods.js +++ b/src/client/rest/RESTMethods.js @@ -7,6 +7,7 @@ const Collection = require('../../util/Collection'); const Util = require('../../util/Util'); const resolvePermissions = require('../../structures/shared/resolvePermissions'); +const RichEmbed = require('../../structures/RichEmbed'); const User = require('../../structures/User'); const GuildMember = require('../../structures/GuildMember'); const Message = require('../../structures/Message'); @@ -140,6 +141,8 @@ class RESTMethods { content = `${mention}${content ? `, ${content}` : ''}`; } + if (embed instanceof RichEmbed) embed = embed._apiTransform(); + return this.rest.makeRequest('patch', Endpoints.Message(message), true, { content, embed, }).then(data => this.client.actions.MessageUpdate.handle(data).updated); diff --git a/src/structures/RichEmbed.js b/src/structures/RichEmbed.js index 1ebc62328..c7143609c 100644 --- a/src/structures/RichEmbed.js +++ b/src/structures/RichEmbed.js @@ -1,4 +1,5 @@ const Attachment = require('./Attachment'); +const MessageEmbed = require('./MessageEmbed'); let ClientDataResolver; /** @@ -247,19 +248,21 @@ class RichEmbed { url: this.url, timestamp: this.timestamp ? new Date(this.timestamp) : null, color: this.color, - fields: this.fields, - thumbnail: this.thumbnail, + fields: this.fields ? this.fields.map(field => ({ name: field.name, value: field.value })) : null, + thumbnail: this.thumbnail ? { + url: this.thumbnail.url, + } : null, image: this.image ? { url: this.image.url, } : null, author: this.author ? { name: this.author.name, url: this.author.url, - icon_url: this.author.iconURL, + icon_url: this.author instanceof MessageEmbed.Author ? this.author.iconURL : this.author.icon_url, } : null, footer: this.footer ? { text: this.footer.text, - icon_url: this.footer.iconURL, + icon_url: this.footer instanceof MessageEmbed.Footer ? this.footer.iconURL : this.footer.icon_url, } : null, }; }