fix(ThreadManager): Ensure fetchActive() only returns active threads in a channel (#9568)

fix(ThreadManager): revert breaking change

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
Jiralite
2023-05-25 18:16:48 +01:00
committed by GitHub
parent 9b06734445
commit 53aa24d418
4 changed files with 22 additions and 6 deletions

View File

@@ -468,8 +468,17 @@ class GuildChannelManager extends CachedManager {
* .catch(console.error);
*/
async fetchActiveThreads(cache = true) {
const raw = await this.client.rest.get(Routes.guildActiveThreads(this.guild.id));
return GuildTextThreadManager._mapThreads(raw, this.client, { guild: this.guild, cache });
const data = await this.rawFetchGuildActiveThreads();
return GuildTextThreadManager._mapThreads(data, this.client, { guild: this.guild, cache });
}
/**
* `GET /guilds/{guild.id}/threads/active`
* @private
* @returns {Promise<RESTGetAPIGuildThreadsResult>}
*/
rawFetchGuildActiveThreads() {
return this.client.rest.get(Routes.guildActiveThreads(this.guild.id));
}
/**

View File

@@ -171,13 +171,13 @@ class ThreadManager extends CachedManager {
}
/**
* Obtains all active thread channels in the guild.
* This internally calls {@link GuildChannelManager#fetchActiveThreads}.
* Obtains all active threads in the channel.
* @param {boolean} [cache=true] Whether to cache the fetched data
* @returns {Promise<FetchedThreads>}
*/
fetchActive(cache = true) {
return this.channel.guild.channels.fetchActiveThreads(cache);
async fetchActive(cache = true) {
const data = await this.channel.guild.channels.rawFetchGuildActiveThreads();
return this.constructor._mapThreads(data, this.client, { parent: this.channel, cache });
}
static _mapThreads(rawThreads, client, { parent, guild, cache }) {

View File

@@ -400,6 +400,11 @@
* @see {@link https://discord-api-types.dev/api/discord-api-types-payloads/common#PermissionFlagsBits}
*/
/**
* @external RESTGetAPIGuildThreadsResult
* @see {@link https://discord-api-types.dev/api/discord-api-types-v10#RESTGetAPIGuildThreadsResult}
*/
/**
* @external RESTJSONErrorCodes
* @see {@link https://discord-api-types.dev/api/discord-api-types-rest/common/enum/RESTJSONErrorCodes}

View File

@@ -156,6 +156,7 @@ import {
APIApplicationRoleConnectionMetadata,
ImageFormat,
GuildMemberFlags,
RESTGetAPIGuildThreadsResult,
} from 'discord-api-types/v10';
import { ChildProcess } from 'node:child_process';
import { EventEmitter } from 'node:events';
@@ -3860,6 +3861,7 @@ export class GuildChannelManager extends CachedManager<Snowflake, GuildBasedChan
): Promise<GuildChannel>;
public setPositions(channelPositions: readonly ChannelPosition[]): Promise<Guild>;
public fetchActiveThreads(cache?: boolean): Promise<FetchedThreads>;
private rawFetchGuildActiveThreads(): Promise<RESTGetAPIGuildThreadsResult>;
public delete(channel: GuildChannelResolvable, reason?: string): Promise<void>;
}