Skip to content

Commit a45cc11

Browse files
authored
fix(GuildMemberManager): options.roles on 'prune' (#4838)
1 parent b8aa967 commit a45cc11

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

src/managers/GuildMemberManager.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -162,19 +162,22 @@ class GuildMemberManager extends BaseManager {
162162
* .then(pruned => console.log(`I just pruned ${pruned} people!`))
163163
* .catch(console.error);
164164
*/
165-
prune({ days = 7, dry = false, count = true, roles = [], reason } = {}) {
165+
prune({ days = 7, dry = false, count: compute_prune_count = true, roles = [], reason } = {}) {
166166
if (typeof days !== 'number') throw new TypeError('PRUNE_DAYS_TYPE');
167167

168-
const query = new URLSearchParams();
169-
query.set('days', days);
170-
query.set('compute_prune_count', count);
168+
const query = { days };
169+
const resolvedRoles = [];
171170

172171
for (const role of roles) {
173172
const resolvedRole = this.guild.roles.resolveID(role);
174173
if (!resolvedRole) {
175174
return Promise.reject(new TypeError('INVALID_TYPE', 'roles', 'Array of Roles or Snowflakes', true));
176175
}
177-
query.append('include_roles', role);
176+
resolvedRoles.push(resolvedRole);
177+
}
178+
179+
if (resolvedRoles.length) {
180+
query.include_roles = dry ? resolvedRoles.join(',') : resolvedRoles;
178181
}
179182

180183
const endpoint = this.client.api.guilds(this.guild.id).prune;
@@ -183,13 +186,12 @@ class GuildMemberManager extends BaseManager {
183186
return endpoint.get({ query, reason }).then(data => data.pruned);
184187
}
185188

186-
const body = [...query.entries()].reduce((acc, [k, v]) => {
187-
if (k === 'include_roles') v = (acc[k] || []).concat(v);
188-
acc[k] = v;
189-
return acc;
190-
}, {});
191-
192-
return endpoint.post({ data: body, reason }).then(data => data.pruned);
189+
return endpoint
190+
.post({
191+
data: { ...query, compute_prune_count },
192+
reason,
193+
})
194+
.then(data => data.pruned);
193195
}
194196

195197
/**

0 commit comments

Comments
 (0)