Improvement upon addMemberToRoles and build

This commit is contained in:
abalabahaha
2016-01-12 14:59:45 -08:00
parent 51a8feb562
commit cffdb5f5f6
2 changed files with 16 additions and 18 deletions

View File

@@ -795,16 +795,22 @@ var InternalClient = (function () {
return Promise.reject(new Error("invalid array of roles"));
}
var roleIDS = roles[0].server.memberMap[member.id].roles.map(function (r) {
return r.id;
});
if (roles.any(function (role) {
if (roles.some(function (role) {
return !role.server.memberMap[member.id];
})) {
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) {
return r.id;
});
for (var i = 0; i < roles.length; i++) {
if (! ~roleIDs.indexOf(roles[i].id)) {
roleIDS.push(roles[i].id);
};
};
return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(role.server.id) + "/" + member.id, true, {
roles: roleIDS
});

View File

@@ -656,26 +656,18 @@ export default class InternalClient {
return Promise.reject(new Error("invalid array of roles"));
}
if (roles.some(role => !role.server.memberMap[member.id])) {
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 currentMemberRoles = roles[0].server.memberMap[member.id].roles;
for (var i = 0; i < roles.length; i++) {
var alreadyHasRole = currentMemberRoles.some(function(currentValue) {
if (currentValue.id === roles[i].id) {
return true;
};
});
if (!alreadyHasRole) {
if (!~roleIDs.indexOf(roles[i].id)) {
roleIDS.push(roles[i].id);
};
};
if (roles.some(function(role) {
return !role.server.memberMap[member.id];
})) {
return Promise.reject(new Error("Role does not exist on same server as member"));
}
return this.apiRequest(
"patch",
`${Endpoints.SERVER_MEMBERS(role.server.id)}/${member.id}`,