72f1ea89166cd5044ab076cdc62cb73a380e3fee
1 var db
= require("../utils/database");
4 * Structure table Games:
6 * vid: integer (variant id)
7 * fen: varchar (initial position)
10 * score: varchar (result)
12 * Structure table Players:
17 * Structure table Moves:
18 * move: varchar (description)
24 exports
.create = function(vid
, fen
, mainTime
, increment
, players
, cb
)
28 "INSERT INTO Games (vid, fen, mainTime, increment) " +
29 "VALUES (" + vid
+ ",'" + fen
+ "'," + mainTime
+ "," + increment
+ ")";
30 db
.run(insertQuery
, err
=> {
33 db
.get("SELECT last_insert_rowid() AS rowid", (err2
,lastId
) => {
34 players
.forEach(p
=> {
36 "INSERT INTO Players VALUES " +
37 "(" + lastId
["rowid"] + "," + p
.id
+ "," + p
.color
+ ")";
45 // TODO: queries here could be async, and wait for all to complete
46 exports
.getOne = function(id
, cb
)
48 db
.serialize(function() {
50 "SELECT v.name AS vname, g.fen, g.score " +
55 db
.get(query
, (err
,gameInfo
) => {
59 "SELECT p.uid AS id, p.color, u.name " +
63 "WHERE p.gid = " + id
;
64 db
.run(query
, (err2
,players
) => {
68 "SELECT move AS desc, played, idx, color " +
71 db
.run(query
, (err3
,moves
) => {
76 vname: gameInfo
.vname
,
78 score: gameInfo
.score
,
82 return cb(null, game
);
89 exports
.remove = function(id
)
91 db
.parallelize(function() {
93 "DELETE FROM Games " +
97 "DELETE FROM Players " +
101 "DELETE FROM Moves " +