fix(GuildMemberRoleStore): only update roles after successful request

Fixes #2381
This commit is contained in:
Pascal
2018-03-05 11:32:03 +01:00
parent 8b679913a4
commit 3f6a0e4de1

View File

@@ -29,11 +29,9 @@ class GuildMemberRoleStore extends DataStore {
if (roleOrRoles.includes(null)) { if (roleOrRoles.includes(null)) {
return Promise.reject(new TypeError('INVALID_TYPE', 'roles', return Promise.reject(new TypeError('INVALID_TYPE', 'roles',
'Array or Collection of Roles or Snowflakes', true)); 'Array or Collection of Roles or Snowflakes', true));
} else {
for (const role of roleOrRoles) super.set(role.id, role);
} }
const newRoles = [...new Set(roleOrRoles.concat(this.array()))];
return this.set(this, reason); return this.set(newRoles, reason);
} }
/** /**
@@ -71,11 +69,9 @@ class GuildMemberRoleStore extends DataStore {
if (roleOrRoles.includes(null)) { if (roleOrRoles.includes(null)) {
return Promise.reject(new TypeError('INVALID_TYPE', 'roles', return Promise.reject(new TypeError('INVALID_TYPE', 'roles',
'Array or Collection of Roles or Snowflakes', true)); 'Array or Collection of Roles or Snowflakes', true));
} else {
for (const role of roleOrRoles) super.remove(role);
} }
const newRoles = [...new Set(roleOrRoles.concat(this.array()))];
return this.set(this, reason); return this.set(newRoles, reason);
} }
/** /**