Added addMemberToRole

This commit is contained in:
hydrabolt
2015-11-05 17:52:21 +00:00
parent e54da00282
commit 164e6b1b7e
6 changed files with 116 additions and 5 deletions

View File

@@ -365,6 +365,24 @@ var Client = (function (_EventEmitter) {
});
};
//def addMemberToRole
Client.prototype.addMemberToRole = function addMemberToRole(member, role) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
var self = this;
return new Promise(function (resolve, reject) {
self.internal.addMemberToRole(member, role).then(function () {
callback();
resolve();
})["catch"](function (e) {
callback(e);
reject(e);
});
});
};
return Client;
})(EventEmitter);

View File

@@ -550,6 +550,40 @@ var InternalClient = (function () {
});
};
//def addMemberToRole
InternalClient.prototype.addMemberToRole = function addMemberToRole(member, role) {
var self = this;
return new Promise(function (resolve, reject) {
member = self.resolver.resolveUser(member);
if (!member || !role) {
reject(new Error("member/role not in server"));
return;
}
if (role.server.memberMap[member.id]) {
var roleIDS = role.server.memberMap[member.id].roles.map(function (r) {
return r.id;
}).concat(role.id);
request.patch(Endpoints.SERVER_MEMBERS(role.server.id) + "/" + member.id).set("authorization", self.token).send({
roles: roleIDS
}).end(function (err) {
if (err) {
reject(err);
} else {
resolve();
}
});
} else {
reject(new Error("member not in server"));
}
});
};
InternalClient.prototype.sendWS = function sendWS(object) {
if (this.websocket) this.websocket.send(JSON.stringify(object));
};

View File

@@ -20,8 +20,10 @@ a.on("message", function (m) {
hoist: true,
permissions: ["manageRoles"]
}).then(function (role) {
a.deleteRole(role).then(function () {
a.reply(m, "deleted!");
a.addMemberToRole(m.author, role).then(function () {
a.reply(m, "added!");
})["catch"](function (e) {
console.log(e.stack);
});
})["catch"](function (e) {
console.log(e.stack);

View File

@@ -339,6 +339,24 @@ class Client extends EventEmitter {
});
}
//def addMemberToRole
addMemberToRole(member, role, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.addMemberToRole(member, role)
.then(() => {
callback();
resolve();
})
.catch(e => {
callback(e);
reject(e);
});
});
}
}
module.exports = Client;

View File

@@ -584,6 +584,43 @@ class InternalClient {
});
}
//def addMemberToRole
addMemberToRole(member, role){
var self = this;
return new Promise((resolve, reject) => {
member = self.resolver.resolveUser(member);
if(!member || !role){
reject(new Error("member/role not in server"));
return;
}
if(role.server.memberMap[member.id]){
var roleIDS = role.server.memberMap[member.id].roles.map(r => r.id).concat(role.id);
request
.patch(Endpoints.SERVER_MEMBERS(role.server.id)+"/"+member.id)
.set("authorization", self.token)
.send({
roles : roleIDS
})
.end((err) => {
if(err){
reject(err);
}else{
resolve();
}
});
}else{
reject(new Error("member not in server"));
}
});
}
sendWS(object) {
if (this.websocket)

View File

@@ -16,9 +16,11 @@ a.on("message", m => {
"manageRoles"
]
}).then( role => {
a.deleteRole(role).then(() => {
a.reply(m, "deleted!");
})
a.addMemberToRole(m.author, role).then(() => {
a.reply(m, "added!");
}).catch( e => {
console.log(e.stack)
});
}).catch( e => {
console.log(e.stack)
});