3fa3caaea0ea68a5e50270a10add5416120e0f8b
[vchess.git] / server / models / News.js
1 const db = require("../utils/database");
2
3 /*
4 * Structure:
5 * id: integer
6 * added: datetime
7 * uid: user id (int)
8 * content: text
9 */
10
11 const NewsModel =
12 {
13 create: function(content, uid, cb)
14 {
15 db.serialize(function() {
16 const query =
17 "INSERT INTO News " +
18 "(added, uid, content) " +
19 "VALUES " +
20 "(" + Date.now() + "," + uid + ",?)";
21 db.run(query, content, function(err) {
22 cb(err, {nid: this.lastID});
23 });
24 });
25 },
26
27 getNext: function(cursor, cb)
28 {
29 db.serialize(function() {
30 const query =
31 "SELECT * " +
32 "FROM News " +
33 "WHERE id > " + cursor + " " +
34 "LIMIT 10"; //TODO: 10 currently hard-coded
35 db.all(query, (err,newsList) => {
36 cb(err, newsList);
37 });
38 });
39 },
40
41 getTimestamp: function(cb)
42 {
43 db.serialize(function() {
44 const query =
45 "SELECT added " +
46 "FROM News " +
47 "ORDER BY added DESC " +
48 "LIMIT 1";
49 db.get(query, (err,ts) => {
50 cb(err, ts);
51 });
52 });
53 },
54
55 update: function(news)
56 {
57 db.serialize(function() {
58 let query =
59 "UPDATE News " +
60 "SET content = ? " +
61 "WHERE id = " + news.id;
62 db.run(query, news.content);
63 });
64 },
65
66 remove: function(id)
67 {
68 db.serialize(function() {
69 const query =
70 "DELETE FROM News " +
71 "WHERE id = " + id;
72 db.run(query);
73 });
74 },
75 }
76
77 module.exports = NewsModel;