Small fix
[vchess.git] / server / models / Game.js
index f99dbde..efdc20f 100644 (file)
@@ -33,8 +33,8 @@ const GameModel =
                                "INSERT INTO Games (vid, fenStart, score, timeControl) " +
                                "VALUES (" + vid + ",'" + fen + "','*','" + timeControl + "')";
       db.run(query, function(err) {
-                               if (!!err)
-                                       return cb(err);
+        if (!!err)
+          return cb(err);
         players.forEach((p,idx) => {
           const color = (idx==0 ? "w" : "b");
           query =
@@ -112,6 +112,40 @@ const GameModel =
                });
        },
 
+  getPlayers: function(id, cb)
+  {
+    db.serialize(function() {
+      const query =
+        "SELECT id " +
+        "FROM Players " +
+        "WHERE gid = " + id;
+      db.all(query, (err,players) => {
+        return cb(err, players);
+      });
+    });
+  },
+
+  // obj can have fields move, fen and/or score
+  update: function(id, obj, cb)
+  {
+               db.serialize(function() {
+      let query =
+        "UPDATE Games " +
+        "SET ";
+      if (!!obj.move)
+        query += "move = " + obj.move + ","; //TODO: already stringified?!
+      if (!!obj.fen)
+        query += "fen = " + obj.fen + ",";
+      if (!!obj.score)
+        query += "score = " + obj.score + ",";
+      query = query.slice(0,-1); //remove last comma
+      query += " WHERE gameId = " + id;
+      db.run(query, (err) => {
+        cb(err);
+      });
+    });
+  },
+
        remove: function(id)
        {
                db.parallelize(function() {