moved redis to it's own file, added a config
This commit is contained in:
parent
afe96eeec1
commit
bdd989ba7e
6 changed files with 452 additions and 417 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
rsync.sh
|
rsync.sh
|
||||||
|
*.swp
|
||||||
|
|
13
config.js
Normal file
13
config.js
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
exports.database = {
|
||||||
|
type: 'mongodb',
|
||||||
|
hostname: 'localhost',
|
||||||
|
port: 27017,
|
||||||
|
database: 'scrumblr'
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
exports.database = {
|
||||||
|
type: 'redis',
|
||||||
|
prefix = '#scrumscrum#'
|
||||||
|
};
|
||||||
|
*/
|
137
lib/data.js
137
lib/data.js
|
@ -1,138 +1,39 @@
|
||||||
var Db = require('mongodb').Db;
|
var conf = require('../config.js').database;
|
||||||
Server = require('mongodb').Server,
|
|
||||||
BSON = require('mongodb').BSONNative
|
|
||||||
|
|
||||||
var db = function(callback) {
|
exports.db = require('./data/'+conf.type+'.js').db;
|
||||||
this.rooms = false;
|
|
||||||
var t = this;
|
|
||||||
|
|
||||||
var db = new Db('scrumblr', new Server('localhost', 27017, {}), {native_parser:true});
|
/*
|
||||||
db.open(function(err, db) {
|
var db = function(callback) { }
|
||||||
db.collection('rooms', function(err, collection) {
|
|
||||||
t.rooms = collection;
|
|
||||||
});
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
db.prototype = {
|
db.prototype = {
|
||||||
clearRoom: function(room, callback) {
|
clearRoom: function(room, callback) { },
|
||||||
this.rooms.remove({name:room},callback);
|
|
||||||
},
|
|
||||||
|
|
||||||
// theme commands
|
// theme commands
|
||||||
setTheme: function(room, theme) {
|
setTheme: function(room, theme) { },
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
|
||||||
{$set:{theme:theme}}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
getTheme: function(room, callback) {
|
getTheme: function(room, callback) { },
|
||||||
this.rooms.findOne(
|
|
||||||
{name:room},
|
|
||||||
{theme:true},
|
|
||||||
function(err, room) {
|
|
||||||
if(room) {
|
|
||||||
callback(room.theme);
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
// Column commands
|
// Column commands
|
||||||
createColumn: function(room, name, callback) {
|
createColumn: function(room, name, callback) { },
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
|
||||||
{$push:{columns:name}},
|
|
||||||
{upsert:true}
|
|
||||||
,callback
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
deleteColumn: function(room) {
|
getAllColumns: function(room, callback) { },
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
|
||||||
{$pop:{columns:1}}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
setColumns: function(room, columns) {
|
deleteColumn: function(room) { },
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
setColumns: function(room, columns) { },
|
||||||
{$set:{columns:columns}},
|
|
||||||
{upsert:true}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
// Card commands
|
// Card commands
|
||||||
createCard: function(room, id, card) {
|
createCard: function(room, id, card) { },
|
||||||
var doc = {};
|
|
||||||
doc['cards.'+id] = card;
|
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
|
||||||
{$set:doc},
|
|
||||||
{upsert:true}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
getAllCards: function(room, callback) {
|
getAllCards: function(room, callback) { },
|
||||||
this.rooms.findOne({name:room},{cards:true},function(err, room) {
|
|
||||||
if(room) {
|
|
||||||
callback(room.cards);
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
getAllColumns: function(room, callback) {
|
cardEdit: function(room, id, text) { },
|
||||||
this.rooms.findOne({name:room},{columns:true},function(err, room) {
|
|
||||||
if(room) {
|
|
||||||
callback(room.columns);
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
cardEdit: function(room, id, text) {
|
cardSetXY: function(room, id, x, y) { },
|
||||||
var doc = {};
|
|
||||||
doc['cards.'+id+'.text'] = text;
|
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
|
||||||
{$set:doc}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
cardSetXY: function(room, id, x, y) {
|
deleteCard: function(room, id) { },
|
||||||
var doc = {};
|
|
||||||
doc['cards.'+id+'.x'] = x;
|
|
||||||
doc['cards.'+id+'.y'] = y;
|
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
|
||||||
{$set:doc}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
deleteCard: function(room, id) {
|
addSticker: function(room, cardId, stickerId) { }
|
||||||
var doc = {};
|
|
||||||
doc['cards.'+id] = true;
|
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
|
||||||
{$unset:doc}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
addSticker: function(room, cardId, stickerId) {
|
|
||||||
var doc = {};
|
|
||||||
doc['cards.'+cardId+'.sticker'] = stickerId;
|
|
||||||
this.rooms.update(
|
|
||||||
{name:room},
|
|
||||||
{$set:doc}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
exports.db = db;
|
exports.db = db;
|
||||||
|
*/
|
||||||
|
|
155
lib/data/mongodb.js
Normal file
155
lib/data/mongodb.js
Normal file
|
@ -0,0 +1,155 @@
|
||||||
|
var Db = require('mongodb').Db;
|
||||||
|
Server = require('mongodb').Server,
|
||||||
|
BSON = require('mongodb').BSONNative,
|
||||||
|
conf = require('../../config.js').database;
|
||||||
|
|
||||||
|
var db = function(callback)
|
||||||
|
{
|
||||||
|
this.rooms = false;
|
||||||
|
var t = this;
|
||||||
|
|
||||||
|
var db = new Db(conf.database, new Server(conf.hostname, conf.port), {native_parser:true});
|
||||||
|
db.open(function(err, db) {
|
||||||
|
db.collection('rooms', function(err, collection) {
|
||||||
|
// make sure we have an index on name
|
||||||
|
collection.ensureIndex([['name',1]],false,function() {});
|
||||||
|
t.rooms = collection;
|
||||||
|
});
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
db.prototype = {
|
||||||
|
clearRoom: function(room, callback)
|
||||||
|
{
|
||||||
|
this.rooms.remove({name:room},callback);
|
||||||
|
},
|
||||||
|
|
||||||
|
// theme commands
|
||||||
|
setTheme: function(room, theme)
|
||||||
|
{
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$set:{theme:theme}}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
getTheme: function(room, callback)
|
||||||
|
{
|
||||||
|
this.rooms.findOne(
|
||||||
|
{name:room},
|
||||||
|
{theme:true},
|
||||||
|
function(err, room) {
|
||||||
|
if(room) {
|
||||||
|
callback(room.theme);
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// Column commands
|
||||||
|
createColumn: function(room, name, callback)
|
||||||
|
{
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$push:{columns:name}},
|
||||||
|
{upsert:true}
|
||||||
|
,callback
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
getAllColumns: function(room, callback)
|
||||||
|
{
|
||||||
|
this.rooms.findOne({name:room},{columns:true},function(err, room) {
|
||||||
|
if(room) {
|
||||||
|
callback(room.columns);
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
deleteColumn: function(room)
|
||||||
|
{
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$pop:{columns:1}}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
setColumns: function(room, columns)
|
||||||
|
{
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$set:{columns:columns}},
|
||||||
|
{upsert:true}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// Card commands
|
||||||
|
createCard: function(room, id, card)
|
||||||
|
{
|
||||||
|
var doc = {};
|
||||||
|
doc['cards.'+id] = card;
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$set:doc},
|
||||||
|
{upsert:true}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
getAllCards: function(room, callback)
|
||||||
|
{
|
||||||
|
this.rooms.findOne({name:room},{cards:true},function(err, room) {
|
||||||
|
if(room) {
|
||||||
|
callback(room.cards);
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
cardEdit: function(room, id, text)
|
||||||
|
{
|
||||||
|
var doc = {};
|
||||||
|
doc['cards.'+id+'.text'] = text;
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$set:doc}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
cardSetXY: function(room, id, x, y)
|
||||||
|
{
|
||||||
|
var doc = {};
|
||||||
|
doc['cards.'+id+'.x'] = x;
|
||||||
|
doc['cards.'+id+'.y'] = y;
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$set:doc}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
deleteCard: function(room, id)
|
||||||
|
{
|
||||||
|
var doc = {};
|
||||||
|
doc['cards.'+id] = true;
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$unset:doc}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
addSticker: function(room, cardId, stickerId)
|
||||||
|
{
|
||||||
|
var doc = {};
|
||||||
|
doc['cards.'+cardId+'.sticker'] = stickerId;
|
||||||
|
this.rooms.update(
|
||||||
|
{name:room},
|
||||||
|
{$set:doc}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
exports.db = db;
|
144
lib/data/redis.js
Normal file
144
lib/data/redis.js
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
//var conf = require('../../config.js').database;
|
||||||
|
|
||||||
|
var redis = require("redis"),
|
||||||
|
redisClient = redis.createClient();
|
||||||
|
|
||||||
|
// If you want Memory Store instead...
|
||||||
|
// var MemoryStore = require('connect/middleware/session/memory');
|
||||||
|
// var session_store = new MemoryStore();
|
||||||
|
|
||||||
|
var RedisStore = require('connect-redis');
|
||||||
|
var session_store = new RedisStore( );
|
||||||
|
|
||||||
|
var REDIS_PREFIX = '#scrumscrum#';
|
||||||
|
|
||||||
|
//For Redis Debugging
|
||||||
|
redisClient.on("error", function (err) {
|
||||||
|
console.log("Redis error: " + err);
|
||||||
|
});
|
||||||
|
|
||||||
|
var db = function(callback) { }
|
||||||
|
|
||||||
|
db.prototype = {
|
||||||
|
clearRoom: function(room, callback) {
|
||||||
|
redisClient.del(REDIS_PREFIX + '-room:/demo-cards', function (err, res) {
|
||||||
|
redisClient.del(REDIS_PREFIX + '-room:/demo-columns', function (err, res) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// theme commands
|
||||||
|
setTheme: function(room, theme) {
|
||||||
|
redisClient.set(REDIS_PREFIX + '-room:' + room + '-theme', theme);
|
||||||
|
},
|
||||||
|
|
||||||
|
getTheme: function(room, callback) {
|
||||||
|
redisClient.get(REDIS_PREFIX + '-room:' + room + '-theme', function (err, res) {
|
||||||
|
callback(res);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// Column commands
|
||||||
|
createColumn: function(room, name, callback) {
|
||||||
|
redisClient.rpush(REDIS_PREFIX + '-room:' + room + '-columns', name,
|
||||||
|
function (err, res) {
|
||||||
|
if (typeof callback != "undefined" && callback !== null) callback();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
getAllColumns: function(room, callback) {
|
||||||
|
redisClient.lrange(REDIS_PREFIX + '-room:' + room + '-columns', 0, -1, function(err, res) {
|
||||||
|
callback(res);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
deleteColumn: function(room) {
|
||||||
|
redisClient.rpop(REDIS_PREFIX + '-room:' + room + '-columns');
|
||||||
|
},
|
||||||
|
|
||||||
|
setColumns: function(room, columns) {
|
||||||
|
//1. first delete all columns
|
||||||
|
redisClient.del(REDIS_PREFIX + '-room:' + room + '-columns', function () {
|
||||||
|
//2. now add columns for each thingy
|
||||||
|
async.forEachSeries(
|
||||||
|
columns,
|
||||||
|
function( item, callback ) {
|
||||||
|
//console.log('rpush: ' + REDIS_PREFIX + '-room:' + room + '-columns' + ' -- ' + item);
|
||||||
|
redisClient.rpush(REDIS_PREFIX + '-room:' + room + '-columns', item,
|
||||||
|
function (err, res) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
function() {
|
||||||
|
//this happens when the series is complete
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// Card commands
|
||||||
|
createCard: function(room, id, card) {
|
||||||
|
var cardString = JSON.stringify(card);
|
||||||
|
redisClient.hset(
|
||||||
|
REDIS_PREFIX + '-room:' + room + '-cards',
|
||||||
|
id,
|
||||||
|
cardString
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
getAllCards: function(room, callback) {
|
||||||
|
redisClient.hgetall(REDIS_PREFIX + '-room:' + room + '-cards', function (err, res) {
|
||||||
|
|
||||||
|
var cards = [];
|
||||||
|
|
||||||
|
for (i in res) {
|
||||||
|
cards.push( JSON.parse(res[i]) );
|
||||||
|
}
|
||||||
|
console.dir(cards);
|
||||||
|
|
||||||
|
callback(cards);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
cardEdit: function(room, id, text) {
|
||||||
|
redisClient.hget(REDIS_PREFIX + '-room:' + room + '-cards', id, function(err, res) {
|
||||||
|
var card = JSON.parse(res);
|
||||||
|
if (card !== null) {
|
||||||
|
card.text = text;
|
||||||
|
redisClient.hset(REDIS_PREFIX + '-room:' + room + '-cards', id, JSON.stringify(card));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
cardSetXY: function(room, id, x, y) {
|
||||||
|
redisClient.hget(REDIS_PREFIX + '-room:' + room + '-cards', id, function(err, res) {
|
||||||
|
var card = JSON.parse(res);
|
||||||
|
if (card !== null) {
|
||||||
|
card.x = x;
|
||||||
|
card.y = y;
|
||||||
|
redisClient.hset(REDIS_PREFIX + '-room:' + room + '-cards', id, JSON.stringify(card));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
deleteCard: function(room, id) {
|
||||||
|
redisClient.hdel(
|
||||||
|
REDIS_PREFIX + '-room:' + room + '-cards',
|
||||||
|
id
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
addSticker: function(room, cardId, stickerId) {
|
||||||
|
redisClient.hget(REDIS_PREFIX + '-room:' + room + '-cards', cardId, function(err, res) {
|
||||||
|
var card = JSON.parse(res);
|
||||||
|
if (card !== null) {
|
||||||
|
card.sticker = stickerId;
|
||||||
|
redisClient.hset(REDIS_PREFIX + '-room:' + room + '-cards', cardId, JSON.stringify(card));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
exports.db = db;
|
223
server.js
223
server.js
|
@ -3,11 +3,6 @@ var http = require('http'),
|
||||||
express = require('express'),
|
express = require('express'),
|
||||||
connect = require('connect');
|
connect = require('connect');
|
||||||
|
|
||||||
/*
|
|
||||||
var redis = require("redis"),
|
|
||||||
redisClient = redis.createClient();
|
|
||||||
*/
|
|
||||||
|
|
||||||
var sys = require('sys');
|
var sys = require('sys');
|
||||||
|
|
||||||
var app = express.createServer();
|
var app = express.createServer();
|
||||||
|
@ -15,23 +10,13 @@ var app = express.createServer();
|
||||||
var async = require('async');
|
var async = require('async');
|
||||||
|
|
||||||
var rooms = require('./lib/rooms.js');
|
var rooms = require('./lib/rooms.js');
|
||||||
var data = require('./lib/data.js');
|
var data = require('./lib/data.js').db;
|
||||||
|
|
||||||
var sanitizer = require('sanitizer');
|
var sanitizer = require('sanitizer');
|
||||||
|
|
||||||
|
|
||||||
// If you want Memory Store instead...
|
|
||||||
// var MemoryStore = require('connect/middleware/session/memory');
|
|
||||||
// var session_store = new MemoryStore();
|
|
||||||
|
|
||||||
//var RedisStore = require('connect-redis');
|
|
||||||
//var session_store = new RedisStore( );
|
|
||||||
|
|
||||||
//Map of sids to user_names
|
//Map of sids to user_names
|
||||||
var sids_to_user_names = [];
|
var sids_to_user_names = [];
|
||||||
|
|
||||||
//var REDIS_PREFIX = '#scrumscrum#';
|
|
||||||
|
|
||||||
app.configure( function(){
|
app.configure( function(){
|
||||||
app.use(express.static(__dirname + '/client'));
|
app.use(express.static(__dirname + '/client'));
|
||||||
app.use(express.bodyParser());
|
app.use(express.bodyParser());
|
||||||
|
@ -51,15 +36,6 @@ app.configure( function(){
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
//For Redis Debugging
|
|
||||||
redisClient.on("error", function (err) {
|
|
||||||
console.log("Redis error: " + err);
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
app.get('/', function(req, res) {
|
app.get('/', function(req, res) {
|
||||||
res.render('home.jade', {
|
res.render('home.jade', {
|
||||||
layout: false
|
layout: false
|
||||||
|
@ -165,7 +141,7 @@ function scrub( text ) {
|
||||||
// console.log(JSON.stringify(message.data));
|
// console.log(JSON.stringify(message.data));
|
||||||
|
|
||||||
getRoom(client, function(room) {
|
getRoom(client, function(room) {
|
||||||
cardSetXY( room , message.data.id, message.data.position.left, message.data.position.top)
|
db.cardSetXY( room , message.data.id, message.data.position.left, message.data.position.top)
|
||||||
});
|
});
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -199,9 +175,9 @@ function scrub( text ) {
|
||||||
clean_data.value = scrub(message.data.value);
|
clean_data.value = scrub(message.data.value);
|
||||||
clean_data.id = scrub(message.data.id);
|
clean_data.id = scrub(message.data.id);
|
||||||
|
|
||||||
//send update to Redis
|
//send update to database
|
||||||
getRoom(client, function(room) {
|
getRoom(client, function(room) {
|
||||||
cardEdit( room , clean_data.id, clean_data.value );
|
db.cardEdit( room , clean_data.id, clean_data.value );
|
||||||
});
|
});
|
||||||
|
|
||||||
var message_out = {
|
var message_out = {
|
||||||
|
@ -221,7 +197,7 @@ function scrub( text ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
getRoom( client, function(room) {
|
getRoom( client, function(room) {
|
||||||
deleteCard ( room, clean_message.data.id );
|
db.deleteCard ( room, clean_message.data.id );
|
||||||
});
|
});
|
||||||
|
|
||||||
//report to all other browsers
|
//report to all other browsers
|
||||||
|
@ -233,7 +209,7 @@ function scrub( text ) {
|
||||||
var clean_message = { data: scrub(message.data) };
|
var clean_message = { data: scrub(message.data) };
|
||||||
|
|
||||||
getRoom( client, function(room) {
|
getRoom( client, function(room) {
|
||||||
createColumn( room, clean_message.data, function() {} );
|
db.createColumn( room, clean_message.data, function() {} );
|
||||||
});
|
});
|
||||||
|
|
||||||
broadcastToRoom( client, clean_message );
|
broadcastToRoom( client, clean_message );
|
||||||
|
@ -242,7 +218,7 @@ function scrub( text ) {
|
||||||
|
|
||||||
case 'deleteColumn':
|
case 'deleteColumn':
|
||||||
getRoom( client, function(room) {
|
getRoom( client, function(room) {
|
||||||
deleteColumn();
|
db.deleteColumn(room);
|
||||||
});
|
});
|
||||||
broadcastToRoom( client, { action: 'deleteColumn' } );
|
broadcastToRoom( client, { action: 'deleteColumn' } );
|
||||||
|
|
||||||
|
@ -261,7 +237,7 @@ function scrub( text ) {
|
||||||
clean_columns[i] = scrub( columns[i] );
|
clean_columns[i] = scrub( columns[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
setColumns( room, clean_columns );
|
db.setColumns( room, clean_columns );
|
||||||
|
|
||||||
broadcastToRoom( client, { action: 'updateColumns', data: clean_columns } );
|
broadcastToRoom( client, { action: 'updateColumns', data: clean_columns } );
|
||||||
|
|
||||||
|
@ -272,7 +248,7 @@ function scrub( text ) {
|
||||||
clean_message.data = scrub(message.data);
|
clean_message.data = scrub(message.data);
|
||||||
|
|
||||||
getRoom( client, function(room) {
|
getRoom( client, function(room) {
|
||||||
setTheme( room, clean_message.data );
|
db.setTheme( room, clean_message.data );
|
||||||
});
|
});
|
||||||
|
|
||||||
clean_message.action = 'changeTheme';
|
clean_message.action = 'changeTheme';
|
||||||
|
@ -298,10 +274,11 @@ function scrub( text ) {
|
||||||
var stickerId = scrub(message.data.stickerId);
|
var stickerId = scrub(message.data.stickerId);
|
||||||
|
|
||||||
getRoom(client, function(room) {
|
getRoom(client, function(room) {
|
||||||
addSticker( room , cardId, stickerId );
|
db.addSticker( room , cardId, stickerId );
|
||||||
});
|
});
|
||||||
|
|
||||||
broadcastToRoom( client, { action: 'addSticker', data: { cardId: cardId, stickerId: stickerId }});
|
broadcastToRoom( client, { action: 'addSticker', data: { cardId: cardId, stickerId: stickerId }});
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
console.log('unknown action');
|
console.log('unknown action');
|
||||||
|
@ -328,8 +305,7 @@ function initClient ( client )
|
||||||
//console.log ('initClient Started');
|
//console.log ('initClient Started');
|
||||||
getRoom(client, function(room) {
|
getRoom(client, function(room) {
|
||||||
|
|
||||||
|
db.getAllCards( room , function (cards) {
|
||||||
getAllCards( room , function (cards) {
|
|
||||||
|
|
||||||
client.send(
|
client.send(
|
||||||
{
|
{
|
||||||
|
@ -341,7 +317,7 @@ function initClient ( client )
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
getAllColumns ( room, function (columns) {
|
db.getAllColumns ( room, function (columns) {
|
||||||
client.send(
|
client.send(
|
||||||
{
|
{
|
||||||
action: 'initColumns',
|
action: 'initColumns',
|
||||||
|
@ -351,7 +327,7 @@ function initClient ( client )
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
getTheme( room, function(theme) {
|
db.getTheme( room, function(theme) {
|
||||||
|
|
||||||
if (theme == null) theme = 'bigcards';
|
if (theme == null) theme = 'bigcards';
|
||||||
|
|
||||||
|
@ -416,74 +392,8 @@ function broadcastToRoom ( client, message ) {
|
||||||
rooms.broadcast_to_roommates(client, message);
|
rooms.broadcast_to_roommates(client, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTheme ( room , callbackFunction )
|
|
||||||
{
|
|
||||||
db.getTheme(room, callbackFunction);
|
|
||||||
// redisClient.get(REDIS_PREFIX + '-room:' + room + '-theme', function (err, res) {
|
|
||||||
// callbackFunction(res);
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
|
|
||||||
function setTheme ( room, theme )
|
|
||||||
{
|
|
||||||
db.setTheme(room, theme);
|
|
||||||
// redisClient.set(REDIS_PREFIX + '-room:' + room + '-theme', theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------COL FUNCTIONS
|
|
||||||
function getAllColumns ( room, callbackFunction ) {
|
|
||||||
db.getAllColumns(room, callbackFunction);
|
|
||||||
// redisClient.lrange(REDIS_PREFIX + '-room:' + room + '-columns', 0, -1, function(err, res) {
|
|
||||||
// callbackFunction(res);
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
|
|
||||||
function createColumn ( room, name, callback ) {
|
|
||||||
// console.log('rpush: ' + REDIS_PREFIX + '-room:' + room + '-columns' + " -- " + name);
|
|
||||||
db.createColumn(room, name, callback);
|
|
||||||
// redisClient.rpush(REDIS_PREFIX + '-room:' + room + '-columns', name,
|
|
||||||
// function (err, res) {
|
|
||||||
if (typeof callback != "undefined" && callback !== null) callback();
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
}
|
|
||||||
|
|
||||||
function deleteColumn ( room ) {
|
|
||||||
console.log('deleteColumn');
|
|
||||||
db.deleteColumn();
|
|
||||||
// redisClient.rpop(REDIS_PREFIX + '-room:' + room + '-columns');
|
|
||||||
}
|
|
||||||
|
|
||||||
function setColumns ( room, columns ) {
|
|
||||||
console.dir('SetColumns:');
|
|
||||||
console.dir(columns);
|
|
||||||
db.setColumns(room, columns);
|
|
||||||
/*
|
|
||||||
|
|
||||||
//1. first delete all columns
|
|
||||||
redisClient.del(REDIS_PREFIX + '-room:' + room + '-columns', function () {
|
|
||||||
//2. now add columns for each thingy
|
|
||||||
async.forEachSeries(
|
|
||||||
columns,
|
|
||||||
function( item, callback ) {
|
|
||||||
//console.log('rpush: ' + REDIS_PREFIX + '-room:' + room + '-columns' + ' -- ' + item);
|
|
||||||
redisClient.rpush(REDIS_PREFIX + '-room:' + room + '-columns', item,
|
|
||||||
function (err, res) {
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
},
|
|
||||||
function() {
|
|
||||||
//this happens when the series is complete
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//----------------CARD FUNCTIONS
|
//----------------CARD FUNCTIONS
|
||||||
function createCard( room, id, text, x, y, rot, colour ) {
|
function createCard( room, id, text, x, y, rot, colour ) {
|
||||||
//console.log ('create card in ' + room);
|
|
||||||
var card = {
|
var card = {
|
||||||
id: id,
|
id: id,
|
||||||
colour: colour,
|
colour: colour,
|
||||||
|
@ -494,96 +404,7 @@ function createCard( room, id, text, x, y, rot, colour ) {
|
||||||
sticker: null
|
sticker: null
|
||||||
};
|
};
|
||||||
|
|
||||||
// var cardString = JSON.stringify(card);
|
db.createCard(room, id, card);
|
||||||
|
|
||||||
db.createCard(room, id, card);
|
|
||||||
/*
|
|
||||||
redisClient.hset(
|
|
||||||
REDIS_PREFIX + '-room:' + room + '-cards',
|
|
||||||
id,
|
|
||||||
cardString
|
|
||||||
)
|
|
||||||
*/
|
|
||||||
|
|
||||||
//console.log(JSON.stringify(cards));
|
|
||||||
}
|
|
||||||
|
|
||||||
function cardSetXY( room, id, x, y )
|
|
||||||
{
|
|
||||||
db.cardSetXY(room, id, x, y);
|
|
||||||
/*
|
|
||||||
redisClient.hget(REDIS_PREFIX + '-room:' + room + '-cards', id, function(err, res) {
|
|
||||||
var card = JSON.parse(res);
|
|
||||||
if (card !== null)
|
|
||||||
{
|
|
||||||
card.x = x;
|
|
||||||
card.y = y;
|
|
||||||
redisClient.hset(REDIS_PREFIX + '-room:' + room + '-cards', id, JSON.stringify(card));
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
function cardEdit( room , id, text) {
|
|
||||||
db.cardEdit(room, id, text);
|
|
||||||
/*
|
|
||||||
redisClient.hget(REDIS_PREFIX + '-room:' + room + '-cards', id, function(err, res) {
|
|
||||||
var card = JSON.parse(res);
|
|
||||||
if (card !== null)
|
|
||||||
{
|
|
||||||
card.text = text;
|
|
||||||
redisClient.hset(REDIS_PREFIX + '-room:' + room + '-cards', id, JSON.stringify(card));
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
function deleteCard( room, id ) {
|
|
||||||
db.deleteCard(room, id);
|
|
||||||
//console.log('deletecard in redis: ' + id);
|
|
||||||
/*
|
|
||||||
redisClient.hdel(
|
|
||||||
REDIS_PREFIX + '-room:' + room + '-cards',
|
|
||||||
id
|
|
||||||
)
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
function getAllCards( room, callbackFunction ) {
|
|
||||||
// console.log('getall from: ' + REDIS_PREFIX + '-room' + room + '-cards');
|
|
||||||
db.getAllCards(room, callbackFunction);
|
|
||||||
/*
|
|
||||||
redisClient.hgetall(REDIS_PREFIX + '-room:' + room + '-cards', function (err, res) {
|
|
||||||
|
|
||||||
var cards = Array();
|
|
||||||
|
|
||||||
for (i in res)
|
|
||||||
{
|
|
||||||
cards.push( JSON.parse(res[i]) );
|
|
||||||
}
|
|
||||||
console.dir(cards);
|
|
||||||
|
|
||||||
|
|
||||||
callbackFunction (cards);
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
function addSticker( room, cardId, stickerId ) {
|
|
||||||
db.addSticker(room, cardId, stickerId);
|
|
||||||
/*
|
|
||||||
redisClient.hget(REDIS_PREFIX + '-room:' + room + '-cards', cardId, function(err, res) {
|
|
||||||
var card = JSON.parse(res);
|
|
||||||
if (card !== null)
|
|
||||||
{
|
|
||||||
card.sticker = stickerId;
|
|
||||||
redisClient.hset(REDIS_PREFIX + '-room:' + room + '-cards', cardId, JSON.stringify(card));
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function roundRand( max )
|
function roundRand( max )
|
||||||
|
@ -615,11 +436,11 @@ function cleanAndInitializeDemoRoom()
|
||||||
{
|
{
|
||||||
// DUMMY DATA
|
// DUMMY DATA
|
||||||
db.clearRoom('/demo', function() {
|
db.clearRoom('/demo', function() {
|
||||||
createColumn( '/demo', 'Not Started' );
|
db.createColumn( '/demo', 'Not Started' );
|
||||||
createColumn( '/demo', 'Started' );
|
db.createColumn( '/demo', 'Started' );
|
||||||
createColumn( '/demo', 'Testing' );
|
db.createColumn( '/demo', 'Testing' );
|
||||||
createColumn( '/demo', 'Review' );
|
db.createColumn( '/demo', 'Review' );
|
||||||
createColumn( '/demo', 'Complete' );
|
db.createColumn( '/demo', 'Complete' );
|
||||||
|
|
||||||
|
|
||||||
createCard('/demo', 'card1', 'Hello this is fun', roundRand(600), roundRand(300), Math.random() * 10 - 5, 'yellow');
|
createCard('/demo', 'card1', 'Hello this is fun', roundRand(600), roundRand(300), Math.random() * 10 - 5, 'yellow');
|
||||||
|
@ -636,8 +457,8 @@ function cleanAndInitializeDemoRoom()
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
var db = new data.db(function() {
|
var db = new data(function() {
|
||||||
cleanAndInitializeDemoRoom();
|
cleanAndInitializeDemoRoom();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue