From 2fcf8af421b34b4908bb01b59cf748a1376e5535 Mon Sep 17 00:00:00 2001
From: Ben <88249114+BenjammingKirby@users.noreply.github.com>
Date: Sat, 26 Feb 2022 04:14:48 -0600
Subject: [PATCH] feat(scheduledevents): add image option (v13) (#7549)
---
src/managers/GuildScheduledEventManager.js | 7 +++++++
typings/index.d.ts | 1 +
2 files changed, 8 insertions(+)
diff --git a/src/managers/GuildScheduledEventManager.js b/src/managers/GuildScheduledEventManager.js
index b35e45c3969a..1259e5acff9b 100644
--- a/src/managers/GuildScheduledEventManager.js
+++ b/src/managers/GuildScheduledEventManager.js
@@ -5,6 +5,7 @@ const CachedManager = require('./CachedManager');
const { TypeError, Error } = require('../errors');
const { GuildScheduledEvent } = require('../structures/GuildScheduledEvent');
const { PrivacyLevels, GuildScheduledEventEntityTypes, GuildScheduledEventStatuses } = require('../util/Constants');
+const DataResolver = require('../util/DataResolver');
/**
* Manages API methods for GuildScheduledEvents and stores their cache.
@@ -49,6 +50,7 @@ class GuildScheduledEventManager extends CachedManager {
* @property {GuildScheduledEventEntityMetadataOptions} [entityMetadata] The entity metadata of the
* guild scheduled event
* This is required if `entityType` is 'EXTERNAL'
+ * @property {?(BufferResolvable|Base64Resolvable)} [image] The cover image of the guild scheduled event
* @property {string} [reason] The reason for creating the guild scheduled event
*/
@@ -76,6 +78,7 @@ class GuildScheduledEventManager extends CachedManager {
scheduledEndTime,
entityMetadata,
reason,
+ image,
} = options;
if (typeof privacyLevel === 'string') privacyLevel = PrivacyLevels[privacyLevel];
@@ -99,6 +102,7 @@ class GuildScheduledEventManager extends CachedManager {
scheduled_start_time: new Date(scheduledStartTime).toISOString(),
scheduled_end_time: scheduledEndTime ? new Date(scheduledEndTime).toISOString() : scheduledEndTime,
description,
+ image: image && (await DataResolver.resolveImage(image)),
entity_type: entityType,
entity_metadata,
},
@@ -172,6 +176,7 @@ class GuildScheduledEventManager extends CachedManager {
* @property {GuildScheduledEventEntityMetadataOptions} [entityMetadata] The entity metadata of the
* guild scheduled event
* This can be modified only if `entityType` of the `GuildScheduledEvent` to be edited is 'EXTERNAL'
+ * @property {?(BufferResolvable|Base64Resolvable)} [image] The cover image of the guild scheduled event
* @property {string} [reason] The reason for editing the guild scheduled event
*/
@@ -197,6 +202,7 @@ class GuildScheduledEventManager extends CachedManager {
scheduledEndTime,
entityMetadata,
reason,
+ image,
} = options;
if (typeof privacyLevel === 'string') privacyLevel = PrivacyLevels[privacyLevel];
@@ -220,6 +226,7 @@ class GuildScheduledEventManager extends CachedManager {
description,
entity_type: entityType,
status,
+ image: image && (await DataResolver.resolveImage(image)),
entity_metadata,
},
reason,
diff --git a/typings/index.d.ts b/typings/index.d.ts
index 89fd1c4a7d1e..e628956c51d8 100644
--- a/typings/index.d.ts
+++ b/typings/index.d.ts
@@ -4790,6 +4790,7 @@ export interface GuildScheduledEventCreateOptions {
description?: string;
channel?: GuildVoiceChannelResolvable;
entityMetadata?: GuildScheduledEventEntityMetadataOptions;
+ image?: BufferResolvable | Base64Resolvable | null;
reason?: string;
}