diff --git a/lib/Client/Client.js b/lib/Client/Client.js index 3b375617c..29e2bc1f9 100644 --- a/lib/Client/Client.js +++ b/lib/Client/Client.js @@ -441,6 +441,25 @@ var Client = (function (_EventEmitter) { }); }; + // def overwritePermissions + + Client.prototype.overwritePermissions = function overwritePermissions(channel, role) { + var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err) {} : arguments[3]; + + var self = this; + return new Promise(function (resolve, reject) { + + self.internal.overwritePermissions(channel, role, options).then(function () { + callback(); + resolve(); + })["catch"](function (e) { + callback(e); + reject(e); + }); + }); + }; + _createClass(Client, [{ key: "users", get: function get() { diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 00ad776d8..97ad9bd8d 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -677,7 +677,11 @@ var InternalClient = (function () { return new Promise(function (resolve, reject) { channel = self.resolver.resolveChannel(channel)["catch"](reject).then(next); function next(channel) { - var user = self.resolver.resolverUser(role); + + var user; + if (role instanceof User) { + user = role; + } var data = {}; data.allow = 0; @@ -697,49 +701,24 @@ var InternalClient = (function () { return; } - for (var _iterator3 = updated.allow, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; + for (var perm in updated) { + if (updated[perm]) { + if (perm instanceof String || typeof perm === "string") { + data.allow |= Constants.Permissions[perm] || 0; + } else { + data.allow |= perm; + } } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var perm = _ref3; - - if (perm instanceof String || typeof perm === "string") { - data.allow |= Constants.Permissions[perm] || 0; - } else { - data.allow |= perm; + if (perm instanceof String || typeof perm === "string") { + data.deny |= Constants.Permissions[perm] || 0; + } else { + data.deny |= perm; + } } } - for (var _iterator4 = updated.deny, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { - var _ref4; - - if (_isArray4) { - if (_i4 >= _iterator4.length) break; - _ref4 = _iterator4[_i4++]; - } else { - _i4 = _iterator4.next(); - if (_i4.done) break; - _ref4 = _i4.value; - } - - var perm = _ref4; - - if (perm instanceof String || typeof perm === "string") { - data.deny |= Constants.Permissions[perm] || 0; - } else { - data.deny |= perm; - } - } - - request.put(Endpoints.CHANNEL_PERMISSIONS(channel) + "/" + data.id).set("authorization", self.token).send(data).end(function (err) { + request.put(Endpoints.CHANNEL_PERMISSIONS(channel.id) + "/" + data.id).set("authorization", self.token).send(data).end(function (err) { + console.log(err); if (err) { reject(err); } else { @@ -887,19 +866,19 @@ var InternalClient = (function () { var server = self.servers.get("id", data.id); if (server) { - for (var _iterator5 = server.channels, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { - var _ref5; + for (var _iterator3 = server.channels, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { + var _ref3; - if (_isArray5) { - if (_i5 >= _iterator5.length) break; - _ref5 = _iterator5[_i5++]; + if (_isArray3) { + if (_i3 >= _iterator3.length) break; + _ref3 = _iterator3[_i3++]; } else { - _i5 = _iterator5.next(); - if (_i5.done) break; - _ref5 = _i5.value; + _i3 = _iterator3.next(); + if (_i3.done) break; + _ref3 = _i3.value; } - var channel = _ref5; + var channel = _ref3; self.channels.remove(channel); } diff --git a/lib/index.js b/lib/index.js index 33b18d636..6b382d905 100644 --- a/lib/index.js +++ b/lib/index.js @@ -13,17 +13,12 @@ a.on("warn", function (m) { }); var start = Date.now(); a.on("message", function (m) { - console.log("msgmsgmsg"); if (m.content === "$$$") { - a.createServer("pongping", "london").then(function (server) { - a.createChannel(server, "pingpong", "text").then(function (channel) { - a.sendMessage(channel, "$$$").then(function (msg) { - a.leaveServer(msg.channel.server).then(function () { - console.log("!!! " + (Date.now() - start)); - }); - })["catch"](error); - })["catch"](error); - })["catch"](error); + a.internal.overwritePermissions(m.channel, m.author, { + manageRoles: true + })["catch"](error).then(function () { + return console.log("hihihihihi!"); + }); } }); a.on("userTypingStart", function (user, chan) { diff --git a/src/Client/Client.js b/src/Client/Client.js index f2daa96c1..7288f4568 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -423,6 +423,24 @@ class Client extends EventEmitter { }); } + + // def overwritePermissions + overwritePermissions(channel, role, options={}, callback=function(err){}){ + var self = this; + return new Promise((resolve, reject) => { + + self.internal.overwritePermissions(channel, role, options) + .then(() => { + callback(); + resolve(); + }) + .catch(e => { + callback(e); + reject(e); + }) + + }); + } } module.exports = Client; \ No newline at end of file diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index b088e1adb..9339c55be 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -721,7 +721,11 @@ class InternalClient { return new Promise((resolve, reject) => { channel = self.resolver.resolveChannel(channel).catch(reject).then(next); function next(channel){ - var user = self.resolver.resolverUser(role); + + var user; + if(role instanceof User){ + user = role; + } var data = {}; data.allow = 0; @@ -741,27 +745,28 @@ class InternalClient { return; } - for(var perm of updated.allow){ - if(perm instanceof String || typeof perm === "string"){ - data.allow |= (Constants.Permissions[perm] || 0); + for(var perm in updated){ + if(updated[perm]){ + if(perm instanceof String || typeof perm === "string"){ + data.allow |= (Constants.Permissions[perm] || 0); + }else{ + data.allow |= perm; + } }else{ - data.allow |= perm; - } - } - - for(var perm of updated.deny){ - if(perm instanceof String || typeof perm === "string"){ - data.deny |= (Constants.Permissions[perm] || 0); - }else{ - data.deny |= perm; + if(perm instanceof String || typeof perm === "string"){ + data.deny |= (Constants.Permissions[perm] || 0); + }else{ + data.deny |= perm; + } } } request - .put(Endpoints.CHANNEL_PERMISSIONS(channel)+"/"+data.id) + .put(Endpoints.CHANNEL_PERMISSIONS(channel.id)+"/"+data.id) .set("authorization", self.token) .send(data) .end(function (err) { + console.log(err); if (err) { reject(err); } else { diff --git a/src/index.js b/src/index.js index ab8bf533d..9d6d8fbba 100644 --- a/src/index.js +++ b/src/index.js @@ -7,24 +7,10 @@ a.on("debug", (m) => console.log("[debug]",m)); a.on("warn", (m) => console.log("[warn]", m)); var start = Date.now(); a.on("message", m => { - console.log("msgmsgmsg"); if(m.content === "$$$"){ - a.createServer("pongping", "london") - .then( server => { - a.createChannel(server, "pingpong", "text") - .then( channel => { - a.sendMessage(channel, "$$$") - .then( msg => { - a.leaveServer(msg.channel.server) - .then(() => { - console.log("!!! " + (Date.now() - start)); - }); - }) - .catch(error); - }) - .catch(error); - }) - .catch(error) + a.internal.overwritePermissions(m.channel, m.author, { + manageRoles : true + }).catch(error).then(()=>console.log("hihihihihi!")); } }); a.on("userTypingStart", (user, chan) => {