Skip to content

Commit

Permalink
memberHasRole, membersWithRole
Browse files Browse the repository at this point in the history
  • Loading branch information
abalabahaha committed Jan 30, 2016
1 parent 2c87479 commit ee2172c
Show file tree
Hide file tree
Showing 8 changed files with 77 additions and 52 deletions.
36 changes: 9 additions & 27 deletions lib/Client/Client.js
Expand Up @@ -397,52 +397,34 @@ var Client = (function (_EventEmitter) {
return this.addMemberToRole(member, role, callback);
};

// def removeMemberFromRole

Client.prototype.removeMemberFromRole = function removeMemberFromRole(member, role) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];

return this.internal.removeMemberFromRole(member, role).then(dataCallback(callback), errorCallback(callback));
};

// def removeUserFromRole

Client.prototype.removeUserFromRole = function removeUserFromRole(member, role) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];

return this.removeMemberFromRole(member, role, callback);
};

// def addMemberToRole

Client.prototype.addMemberToRoles = function addMemberToRoles(member, roles) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];
// def addUserToRole

return this.internal.addMemberToRoles(member, roles).then(dataCallback(callback), errorCallback(callback));
Client.prototype.memberHasRole = function memberHasRole(member, role) {
return this.internal.memberHasRole(member, role);
};

// def addUserToRole

Client.prototype.addUserToRoles = function addUserToRoles(member, roles) {
Client.prototype.userHasRole = function userHasRole(member, role) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];

return this.addMemberToRoles(member, roles, callback);
return this.memberHasRole(member, role, callback);
};

// def removeMemberFromRole

Client.prototype.removeMemberFromRoles = function removeMemberFromRoles(member, roles) {
Client.prototype.removeMemberFromRole = function removeMemberFromRole(member, role) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];

return this.internal.removeMemberFromRoles(member, roles).then(dataCallback(callback), errorCallback(callback));
return this.internal.removeMemberFromRole(member, role).then(dataCallback(callback), errorCallback(callback));
};

// def removeUserFromRole

Client.prototype.removeUserFromRoles = function removeUserFromRoles(member, roles) {
Client.prototype.removeUserFromRole = function removeUserFromRole(member, role) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];

return this.removeMemberFromRoles(member, roles, callback);
return this.removeMemberFromRole(member, role, callback);
};

// def createInvite
Expand Down
16 changes: 14 additions & 2 deletions lib/Client/InternalClient.js
Expand Up @@ -801,7 +801,7 @@ var InternalClient = (function () {
member = this.resolver.resolveUser(member);

if (!member) {
return Promise.reject(new Error("member not in server"));
return Promise.reject(new Error("user not found"));
}

if (!Array.isArray(roles) || roles.length === 0) {
Expand Down Expand Up @@ -833,13 +833,25 @@ var InternalClient = (function () {
});
};

InternalClient.prototype.memberHasRole = function memberHasRole(member, role) {
member = this.resolver.resolveUser(member);

if (!member) {
throw new Error("user not found");
}

return !!role.server.rolesOf(member).find(function (r) {
return r.id == role.id;
});
};

//def removeMemberFromRole

InternalClient.prototype.removeMemberFromRole = function removeMemberFromRole(member, roles) {
member = this.resolver.resolveUser(member);

if (!member) {
return Promise.reject(new Error("member not in server"));
return Promise.reject(new Error("user not found"));
}

if (!Array.isArray(roles) || roles.length === 0) {
Expand Down
14 changes: 14 additions & 0 deletions lib/Structures/Server.js
Expand Up @@ -187,6 +187,10 @@ var Server = (function (_Equality) {
}
};

Server.prototype.rolesOfMember = function rolesOfMember(member) {
return this.rolesOfUser(member);
};

Server.prototype.rolesOf = function rolesOf(user) {
return this.rolesOfUser(user);
};
Expand Down Expand Up @@ -322,6 +326,16 @@ var Server = (function (_Equality) {
return this.client.createChannel.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
};

Server.prototype.membersWithRole = function membersWithRole(role) {
return this.members.filter(function (m) {
return m.hasRole(role);
});
};

Server.prototype.usersWithRole = function usersWithRole(role) {
return this.membersWithRole(role);
};

_createClass(Server, [{
key: "iconURL",
get: function get() {
Expand Down
4 changes: 4 additions & 0 deletions lib/Structures/User.js
Expand Up @@ -95,6 +95,10 @@ var User = (function (_Equality) {
return this.client.getChannelLogs.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
};

User.prototype.hasRole = function hasRole(role) {
return this.client.memberHasRole.apply(this.client, [this, role]);
};

_createClass(User, [{
key: "avatarURL",
get: function get() {
Expand Down
30 changes: 9 additions & 21 deletions src/Client/Client.js
Expand Up @@ -338,37 +338,25 @@ export default class Client extends EventEmitter {
return this.addMemberToRole(member, role, callback);
}

// def removeMemberFromRole
removeMemberFromRole(member, role, callback = (/*err, {}*/) => { }) {
return this.internal.removeMemberFromRole(member, role)
.then(dataCallback(callback), errorCallback(callback));
}

// def removeUserFromRole
removeUserFromRole(member, role, callback = (/*err, {}*/) => { }) {
return this.removeMemberFromRole(member, role, callback);
}

// def addMemberToRole
addMemberToRoles(member, roles, callback = (/*err, {}*/) => { }) {
return this.internal.addMemberToRoles(member, roles)
.then(dataCallback(callback), errorCallback(callback));
// def addUserToRole
memberHasRole(member, role) {
return this.internal.memberHasRole(member, role);
}

// def addUserToRole
addUserToRoles(member, roles, callback = (/*err, {}*/) => { }) {
return this.addMemberToRoles(member, roles, callback);
userHasRole(member, role, callback = (/*err, {}*/) => { }) {
return this.memberHasRole(member, role, callback);
}

// def removeMemberFromRole
removeMemberFromRoles(member, roles, callback = (/*err, {}*/) => { }) {
return this.internal.removeMemberFromRoles(member, roles)
removeMemberFromRole(member, role, callback = (/*err, {}*/) => { }) {
return this.internal.removeMemberFromRole(member, role)
.then(dataCallback(callback), errorCallback(callback));
}

// def removeUserFromRole
removeUserFromRoles(member, roles, callback = (/*err, {}*/) => { }) {
return this.removeMemberFromRoles(member, roles, callback);
removeUserFromRole(member, role, callback = (/*err, {}*/) => { }) {
return this.removeMemberFromRole(member, role, callback);
}

// def createInvite
Expand Down
14 changes: 12 additions & 2 deletions src/Client/InternalClient.js
Expand Up @@ -657,7 +657,7 @@ export default class InternalClient {
member = this.resolver.resolveUser(member);

if (!member) {
return Promise.reject(new Error("member not in server"));
return Promise.reject(new Error("user not found"));
}

if (!Array.isArray(roles) || roles.length === 0) {
Expand Down Expand Up @@ -690,12 +690,22 @@ export default class InternalClient {
);
}

memberHasRole(member, role) {
member = this.resolver.resolveUser(member);

if (!member) {
throw new Error("user not found");
}

return !!role.server.rolesOf(member).find(r => r.id == role.id);
}

//def removeMemberFromRole
removeMemberFromRole(member, roles) {
member = this.resolver.resolveUser(member);

if (!member) {
return Promise.reject(new Error("member not in server"));
return Promise.reject(new Error("user not found"));
}

if (!Array.isArray(roles) || roles.length === 0) {
Expand Down
11 changes: 11 additions & 0 deletions src/Structures/Server.js
Expand Up @@ -121,6 +121,10 @@ export default class Server extends Equality {
}
}

rolesOfMember(member) {
return this.rolesOfUser(member);
}

rolesOf(user) {
return this.rolesOfUser(user);
}
Expand Down Expand Up @@ -258,4 +262,11 @@ export default class Server extends Equality {
return this.client.createChannel.apply(this.client, reg(this, arguments));
}

membersWithRole(role) {
return this.members.filter(m => m.hasRole(role));
}

usersWithRole(role) {
return this.membersWithRole(role);
}
}
4 changes: 4 additions & 0 deletions src/Structures/User.js
Expand Up @@ -106,4 +106,8 @@ export default class User extends Equality{
getLogs() {
return this.client.getChannelLogs.apply(this.client, reg(this, arguments));
}

hasRole(role) {
return this.client.memberHasRole.apply(this.client, [this, role]);
}
}

0 comments on commit ee2172c

Please sign in to comment.