@@ -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