fixed how channels and users are cached

This commit is contained in:
hydrabolt
2015-08-24 17:30:20 +01:00
parent ff0187a4b1
commit 97a6ff2772
6 changed files with 197 additions and 143 deletions

View File

@@ -13,8 +13,8 @@ var Server = (function () {
this.ownerID = data.owner_id;
this.name = data.name;
this.id = data.id;
this.members = new Set();
this.channels = new Set();
this.members = [];
this.channels = [];
this.icon = data.icon;
this.afkTimeout = data.afk_timeout;
this.afkChannelId = data.afk_channel_id;
@@ -32,7 +32,7 @@ var Server = (function () {
// get a user from this server's member list,
// it will be identical (unless an async change occurred)
// to the client's cache.
this.members.add(client.addUser(member.user));
this.members.push(client.addUser(member.user));
}
} catch (err) {
_didIteratorError = true;
@@ -48,31 +48,6 @@ var Server = (function () {
}
}
}
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = data.channels[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var channel = _step2.value;
this.channels.add(client.addChannel(channel, this.id));
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2["return"]) {
_iterator2["return"]();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
}
_createClass(Server, [{
@@ -80,16 +55,48 @@ var Server = (function () {
// get/set
value: function getChannel(key, value) {
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = this.channels[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var channel = _step2.value;
if (channel[key] === value) {
return channel;
}
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2["return"]) {
_iterator2["return"]();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
return null;
}
}, {
key: "getMember",
value: function getMember(key, value) {
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
try {
for (var _iterator3 = this.channels[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var channel = _step3.value;
for (var _iterator3 = this.members[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var member = _step3.value;
if (channel[key] === value) {
return channel;
if (member[key] === value) {
return member;
}
}
} catch (err) {
@@ -110,38 +117,6 @@ var Server = (function () {
return null;
}
}, {
key: "getMember",
value: function getMember(key, value) {
var _iteratorNormalCompletion4 = true;
var _didIteratorError4 = false;
var _iteratorError4 = undefined;
try {
for (var _iterator4 = this.members[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
var member = _step4.value;
if (member[key] === value) {
return member;
}
}
} catch (err) {
_didIteratorError4 = true;
_iteratorError4 = err;
} finally {
try {
if (!_iteratorNormalCompletion4 && _iterator4["return"]) {
_iterator4["return"]();
}
} finally {
if (_didIteratorError4) {
throw _iteratorError4;
}
}
}
return null;
}
}, {
key: "iconURL",
get: function get() {
if (!this.icon) return null;