summaryrefslogtreecommitdiffstats
path: root/protoype/router/myplatform.js
diff options
context:
space:
mode:
Diffstat (limited to 'protoype/router/myplatform.js')
-rw-r--r--protoype/router/myplatform.js77
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;
+