1 var db
= require("../utils/database");
8 * vid: variant id (int)
9 * fen: varchar (optional)
16 checkProblem: function(p
)
18 if (!p
.vid
.toString().match(/^[0-9]+$/))
19 return "Wrong variant ID";
20 if (!p
.fen
.match(/^[a-zA-Z0-9, /-]*$/))
21 return "Bad FEN string";
25 create: function(p
, cb
)
27 db
.serialize(function() {
29 "INSERT INTO Problems " +
30 "(added, uid, vid, fen, instruction, solution) " +
32 "(" + Date
.now() + "," + p
.uid
+ ",'" + p
.fen
+ "',?,?)";
33 db
.run(query
, p
.instruction
, p
.solution
, function(err
) {
34 return cb(err
, {pid: this.lastID
});
41 db
.serialize(function() {
45 db
.all(query
, (err
,problems
) => {
46 return cb(err
, problems
);
51 getOne: function(id
, cb
)
53 db
.serialize(function() {
58 db
.get(query
, (err
,problem
) => {
59 return cb(err
, problem
);
64 update: function(id
, prob
)
66 db
.serialize(function() {
70 "vid = " + prob
.vid
+ "," +
71 "fen = " + prob
.fen
+ "," +
72 "instruction = " + prob
.instruction
+ "," +
73 "solution = " + prob
.solution
+ " " +
81 db
.serialize(function() {
83 "DELETE FROM Problems " +
89 safeRemove: function(id
, uid
, cb
)
91 db
.serialize(function() {
95 "WHERE id = " + id
+ " AND uid = " + uid
;
96 db
.get(query
, (err
,prob
) => {
98 return cb({errmsg: "Not your problem"});
99 ProvlemModel
.remove(id
);
106 module
.exports
= ProblemModel
;