About to start caching finalised classes

This commit is contained in:
hydrabolt
2015-08-23 20:30:47 +01:00
parent df1519a181
commit b6506783f3
3 changed files with 50 additions and 23 deletions

View File

@@ -1,6 +1,8 @@
//discord.js modules
var Endpoints = require("./Endpoints.js");
var User = require("./User.js");
var Server = require("./Server.js");
var Channel = require("./Channel.js");
//node modules
var request = require("superagent");
@@ -152,6 +154,34 @@ class Client {
return this.userCache.get(data.id);
}
//def addChannel
addChannel(data) {
if (!this.channelCache.has(data.id)){
this.channelCache.set(data.id, new Channel(data, SERVER));
}
return this.channelCache.get(data.id);
}
//def addServer
addServer(data){
if(!this.serverCache.has(data.id)){
this.serverCache.set(data.id, new Server(data, this));
}
return this.serverCache.get(data.id);
}
//def getUser
getUser(key, value){
for (var userRow of this.userCache) {
var user = userRow[1];
if (user[key] === value) {
return user;
}
}
return null;
}
//def trySendConnData
trySendConnData() {

View File

@@ -1,28 +1,21 @@
var List = require("./list.js").List;
class Channel {
exports.Channel = function(name, server, type, id, isPrivate){
if(!type){ //there's no second argument
var channel = name;
name = channel.name;
server = server;
type = channel.type;
id = channel.id;
isPrivate = channel.is_private;
constructor(data, server) {
this.server = server;
this.name = data.name;
this.type = data.type;
this.id = data.id;
//this.isPrivate = isPrivate; //not sure about the implementation of this...
}
get client() {
return this.server.client;
}
equals(object) {
return object.id === this.id;
}
this.name = name;
this.server = server;
this.type = type;
this.id = id;
this.isPrivate = isPrivate;
this.messages = new List("id", 5000);
}
exports.Channel.equals = function(otherChannel){
if(otherChannel.id === this.id){
return true;
} else {
return false;
}
}
module.exports = Channel;

View File

@@ -44,6 +44,10 @@ class Server {
return this.getChannel("name", "general");
}
get owner() {
return this.client.getUser("id", this.ownerID);
}
// get/set
getChannel(key, value) {
for (var channel of this.channels) {