feat v13: Support pagination for fetching thread members (#9045)

* feat: support pagnation

* feat: support pagnation

* feat: fix tests

* fix: better fetch

* fix: tests

* Apply suggestions from code review

Co-authored-by: Aura Román <kyradiscord@gmail.com>

* fix: bad merge

---------

Co-authored-by: Aura Román <kyradiscord@gmail.com>
This commit is contained in:
Jaw0r3k
2023-04-17 15:59:25 +02:00
committed by GitHub
parent 71161518ca
commit 4f26ba7c2a
4 changed files with 163 additions and 28 deletions

View File

@@ -8,7 +8,7 @@ const ThreadMemberFlags = require('../util/ThreadMemberFlags');
* @extends {Base}
*/
class ThreadMember extends Base {
constructor(thread, data) {
constructor(thread, data, extra = {}) {
super(thread.client);
/**
@@ -29,10 +29,10 @@ class ThreadMember extends Base {
*/
this.id = data.user_id;
this._patch(data);
this._patch(data, extra);
}
_patch(data) {
_patch(data, extra = {}) {
if ('join_timestamp' in data) this.joinedTimestamp = new Date(data.join_timestamp).getTime();
if ('flags' in data) {
@@ -42,6 +42,17 @@ class ThreadMember extends Base {
*/
this.flags = new ThreadMemberFlags(data.flags).freeze();
}
if ('member' in data) {
/**
* The guild member associated with this thread member.
* @type {?GuildMember}
* @private
*/
this.member = this.thread.guild.members._add(data.member, extra.cache);
} else {
this.member ??= null;
}
}
/**
@@ -50,7 +61,7 @@ class ThreadMember extends Base {
* @readonly
*/
get guildMember() {
return this.thread.guild.members.resolve(this.id);
return this.member ?? this.thread.guild.members.resolve(this.id);
}
/**