diff options
Diffstat (limited to 'protoype/router/myplatform.js')
-rw-r--r-- | protoype/router/myplatform.js | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/protoype/router/myplatform.js b/protoype/router/myplatform.js new file mode 100644 index 0000000..ef189aa --- /dev/null +++ b/protoype/router/myplatform.js @@ -0,0 +1,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; + |