Fix addMemberToRoles/removeMemberFromRoles

This commit is contained in:
abalabahaha
2016-01-29 22:11:12 -08:00
parent e3173d1561
commit 5d4cd1fc28
2 changed files with 28 additions and 24 deletions

View File

@@ -810,7 +810,7 @@ var InternalClient = (function () {
} }
if (!Array.isArray(roles) || roles.length === 0) { if (!Array.isArray(roles) || roles.length === 0) {
roles = this.resolve.resolveRole(roles); roles = this.resolver.resolveRole(roles);
if (roles) { if (roles) {
roles = [roles]; roles = [roles];
} else { } else {
@@ -828,18 +828,20 @@ var InternalClient = (function () {
return Promise.reject(new Error("Role does not exist on same server as member")); return Promise.reject(new Error("Role does not exist on same server as member"));
} }
var roleIDS = roles[0].server.memberMap[member.id].roles.map(function (r) { var roleIDs = roles[0].server.memberMap[member.id].roles.map(function (r) {
return r.id; return r.id;
}); });
for (var i = 0; i < roles.length; i++) { for (var i = 0; i < roles.length; i++) {
if (! ~roleIDs.indexOf(roles[i].id)) { if (! ~roleIDs.indexOf(roles[i].id)) {
roleIDS.push(roles[i].id); roleIDs.push(roles[i].id);
}; };
}; };
return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(role.server.id) + "/" + member.id, true, { console.log(roleIDs);
roles: roleIDS
return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(roles[0].server.id) + "/" + member.id, true, {
roles: roleIDs
}); });
}; };
@@ -871,7 +873,7 @@ var InternalClient = (function () {
} }
if (!Array.isArray(roles) || roles.length === 0) { if (!Array.isArray(roles) || roles.length === 0) {
roles = this.resolve.resolveRole(roles); roles = this.resolver.resolveRole(roles);
if (roles) { if (roles) {
roles = [roles]; roles = [roles];
} else { } else {
@@ -883,7 +885,7 @@ var InternalClient = (function () {
}); });
} }
var roleIDS = roles[0].server.memberMap[member.id].roles.map(function (r) { var roleIDs = roles[0].server.memberMap[member.id].roles.map(function (r) {
return r.id; return r.id;
}); });
@@ -904,16 +906,16 @@ var InternalClient = (function () {
if (!role.server.memberMap[member.id]) { if (!role.server.memberMap[member.id]) {
return Promise.reject(new Error("member not in server")); return Promise.reject(new Error("member not in server"));
} }
for (var item in roleIDS) { for (var item in roleIDs) {
if (roleIDS[item] === role.id) { if (roleIDs[item] === role.id) {
roleIDS.splice(item, 1); roleIDs.splice(item, 1);
break; break;
} }
} }
} }
return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(role.server.id) + "/" + member.id, true, { return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(roles[0].server.id) + "/" + member.id, true, {
roles: roleIDS roles: roleIDs
}); });
}; };

View File

@@ -663,7 +663,7 @@ export default class InternalClient {
} }
if (!Array.isArray(roles) || roles.length === 0) { if (!Array.isArray(roles) || roles.length === 0) {
roles = this.resolve.resolveRole(roles); roles = this.resolver.resolveRole(roles);
if (roles) { if (roles) {
roles = [roles]; roles = [roles];
} else { } else {
@@ -677,20 +677,22 @@ export default class InternalClient {
return Promise.reject(new Error("Role does not exist on same server as member")); return Promise.reject(new Error("Role does not exist on same server as member"));
} }
var roleIDS = roles[0].server.memberMap[member.id].roles.map(r => r.id); var roleIDs = roles[0].server.memberMap[member.id].roles.map(r => r.id);
for (var i = 0; i < roles.length; i++) { for (var i = 0; i < roles.length; i++) {
if (!~roleIDs.indexOf(roles[i].id)) { if (!~roleIDs.indexOf(roles[i].id)) {
roleIDS.push(roles[i].id); roleIDs.push(roles[i].id);
}; };
}; };
console.log(roleIDs);
return this.apiRequest( return this.apiRequest(
"patch", "patch",
`${Endpoints.SERVER_MEMBERS(role.server.id)}/${member.id}`, `${Endpoints.SERVER_MEMBERS(roles[0].server.id)}/${member.id}`,
true, true,
{ {
roles: roleIDS roles: roleIDs
} }
); );
} }
@@ -718,7 +720,7 @@ export default class InternalClient {
} }
if (!Array.isArray(roles) || roles.length === 0) { if (!Array.isArray(roles) || roles.length === 0) {
roles = this.resolve.resolveRole(roles); roles = this.resolver.resolveRole(roles);
if (roles) { if (roles) {
roles = [roles]; roles = [roles];
} else { } else {
@@ -728,15 +730,15 @@ export default class InternalClient {
roles = roles.map(r => this.resolver.resolveRole(r)); roles = roles.map(r => this.resolver.resolveRole(r));
} }
var roleIDS = roles[0].server.memberMap[member.id].roles.map(r => r.id); var roleIDs = roles[0].server.memberMap[member.id].roles.map(r => r.id);
for(var role of roles) { for(var role of roles) {
if (!role.server.memberMap[member.id]) { if (!role.server.memberMap[member.id]) {
return Promise.reject(new Error("member not in server")); return Promise.reject(new Error("member not in server"));
} }
for (var item in roleIDS) { for (var item in roleIDs) {
if (roleIDS[item] === role.id) { if (roleIDs[item] === role.id) {
roleIDS.splice(item, 1); roleIDs.splice(item, 1);
break; break;
} }
} }
@@ -744,10 +746,10 @@ export default class InternalClient {
return this.apiRequest( return this.apiRequest(
"patch", "patch",
`${Endpoints.SERVER_MEMBERS(role.server.id)}/${member.id}`, `${Endpoints.SERVER_MEMBERS(roles[0].server.id)}/${member.id}`,
true, true,
{ {
roles: roleIDS roles: roleIDs
} }
); );
} }