Experimental news notification system + fix Eightpieces variant
[vchess.git] / server / routes / news.js
index 80b9129..e1efbdd 100644 (file)
@@ -9,25 +9,30 @@ router.post("/news", access.logged, access.ajax, (req,res) => {
   {
     const content = sanitizeHtml(req.body.news.content);
     NewsModel.create(content, req.userId, (err,ret) => {
-      res.json(err || {id:ret.nid});
+      res.json(err || { id: ret.nid });
     });
   }
 });
 
 router.get("/news", access.ajax, (req,res) => {
   const cursor = req.query["cursor"];
-  if (cursor.match(/^[0-9]+$/))
-  {
+  if (cursor.match(/^[0-9]+$/)) {
     NewsModel.getNext(cursor, (err,newsList) => {
-      res.json(err || {newsList:newsList});
+      res.json(err || { newsList: newsList });
     });
   }
 });
 
+router.get("/newsts", access.ajax, (req,res) => {
+  // Special query for footer: just return timestamp of last news
+  NewsModel.getTimestamp((err,ts) => {
+    res.json(err || { timestamp: ts.added });
+  });
+});
+
 router.put("/news", access.logged, access.ajax, (req,res) => {
   let news = req.body.news;
-  if (devs.includes(req.userId) && news.id.toString().match(/^[0-9]+$/))
-  {
+  if (devs.includes(req.userId) && news.id.toString().match(/^[0-9]+$/)) {
     news.content = sanitizeHtml(news.content);
     NewsModel.update(news);
     res.json({});
@@ -36,8 +41,7 @@ router.put("/news", access.logged, access.ajax, (req,res) => {
 
 router.delete("/news", access.logged, access.ajax, (req,res) => {
   const nid = req.query.id;
-  if (devs.includes(req.userId) && nid.toString().match(/^[0-9]+$/))
-  {
+  if (devs.includes(req.userId) && nid.toString().match(/^[0-9]+$/)) {
     NewsModel.remove(nid);
     res.json({});
   }