added createRole, updateRole and deleteRole

This commit is contained in:
hydrabolt
2015-11-05 17:37:27 +00:00
parent ca6f582853
commit e54da00282
6 changed files with 310 additions and 21 deletions

View File

@@ -456,6 +456,100 @@ var InternalClient = (function () {
});
};
// def createRole
InternalClient.prototype.createRole = function createRole(server, data) {
var self = this;
return new Promise(function (resolve, reject) {
server = self.resolver.resolveServer(server);
request.post(Endpoints.SERVER_ROLES(server.id)).set("authorization", self.token).end(function (err, res) {
if (err) {
reject(err);
} else {
var role = server.roles.add(new Role(res.body, server, self.client));
if (data) {
self.updateRole(role, data).then(resolve)["catch"](reject);
} else {
resolve(role);
}
}
});
});
};
// def updateRole
InternalClient.prototype.updateRole = function updateRole(role, data) {
var self = this;
data = data || {};
data.permissions = data.permissions || [];
return new Promise(function (resolve, reject) {
var server = self.resolver.resolveServer(role.server);
var permissions = 0;
for (var _iterator2 = data.permissions, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var perm = _ref2;
if (perm instanceof String || typeof perm === "string") {
permissions |= Constants.Permissions[perm] || 0;
} else {
permissions |= perm;
}
}
data.color = data.color || 0;
request.patch(Endpoints.SERVER_ROLES(server.id) + "/" + role.id).set("authorization", self.token).send({
color: data.color || role.color,
hoist: data.hoist || role.hoist,
name: data.name || role.name,
permissions: permissions
}).end(function (err, res) {
if (err) {
reject(err);
} else {
var nrole = new Role(res.body, server, self.client);
resolve(server.roles.update(role, nrole));
}
});
});
};
// def deleteRole
InternalClient.prototype.deleteRole = function deleteRole(role) {
var self = this;
return new Promise(function (resolve, reject) {
request.del(Endpoints.SERVER_ROLES(role.server.id) + "/" + role.id).set("authorization", self.token).end(function (err, res) {
if (err) {
reject(err);
} else {
resolve();
// the ws cache will handle it
// role.server.roles.remove(role);
}
});
});
};
InternalClient.prototype.sendWS = function sendWS(object) {
if (this.websocket) this.websocket.send(JSON.stringify(object));
};
@@ -593,19 +687,19 @@ var InternalClient = (function () {
var server = self.servers.get("id", data.id);
if (server) {
for (var _iterator2 = server.channels, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
for (var _iterator3 = server.channels, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref3 = _iterator3[_i3++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
_i3 = _iterator3.next();
if (_i3.done) break;
_ref3 = _i3.value;
}
var channel = _ref2;
var channel = _ref3;
self.channels.remove(channel);
}
@@ -841,7 +935,7 @@ var InternalClient = (function () {
client.emit("userTypingStart", user, channel);
}
setTimeout(function () {
if (Date.now() - user.typing.since > 5990) {
if (Date.now() - user.typing.since > 5500) {
// they haven't typed since
user.typing.since = null;
user.typing.channel = null;