blob: ef189aaece2416df3bdf14660b46a12e7baab8b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
/*
* myplatform.js
*
* main inerface used for the server platform
*
*/
var util = require('util');
var db = require('../mydb.js');
/* /sys/do?get=activelist [list of active users]
* /sys/do?get=entermatch&master=foo&slave=bar [enter master's match]
* /sys/do?post=creatematch&master=foo&slave=bar [create match]
*
*/
function system(req, res, next)
{
/* id contains routing token, req.query is a block/struct, key-val data structure containing GET params
* id should be the main verb, action we want to do */
util.log('[sys] route id aka action: ' + req.params.id);
if (req.params.id === 'do')
{
var data = '';
if (req.query.get != undefined)
{
util.log('[sys] get value: ' + req.query.get);
if (req.query.get === 'activelist') {
db.users.find({status: 'online'}, function(err, result) {
if (err || !result)
util.log('[sys] do?get=activelist failed or empty');
else {
for (var i = 0; i < result.length; i++) {
data += result[i].tag + '\n';
}
res.send(data);
}
});
}
/* slave enters a match here */
else if (req.query.get === 'entermatch' && req.query.master != undefined && req.query.master.length > 0 &&
req.query.slave != undefined && req.query.slave.length > 0) {
util.log('[sys] get: ' + req.query.slave + ' entered ' + req.query.master + '\'s match');
res.send('entered match\n');
}
else
next();
}
else if (req.query.post != undefined) /* post here refers to a param client would assign */
{
util.log('[sys] client post value: ' + req.query.post);
if (req.query.post === 'creatematch' && req.query.master != undefined && req.query.master.length > 0 &&
req.query.slave != undefined && req.query.slave.length > 0) { /* master creates a match */
/* how the fuck do I get a hold of slave? */
// invite slave, wait for reply, if accepted, keep that state!
// respond to master
util.log('[sys] post: ' + req.query.slave + ' accepted match');
res.send('match accepted\n');
} else {
util.logger('[sys] unrecognized client data post');
next();
}
}
else
{
util.log('[sys] undefined GET params');
next();
}
}
else
{
/* unknown action */
next();
}
}
exports.system = system;
|