浏览代码

Leaderboard

Craig Fletcher 4 年之前
父节点
当前提交
c71760a286
共有 3 个文件被更改,包括 39 次插入2 次删除
  1. 12 0
      data/ti.db
  2. 1 1
      modules/db.js
  3. 26 1
      modules/server.js

+ 12 - 0
data/ti.db

@@ -15,6 +15,10 @@
         "josh": {
             "password": "test",
             "factions": []
+        },
+        "tat": {
+            "password": "tit",
+            "factions": []
         }
     },
     "votes": {
@@ -178,5 +182,13 @@
                 "unique": true
             }
         }
+    },
+    "wins": {
+        "Ifuckinlovecrickets": {
+            "1617991200": {
+                "test": 1,
+                "tat": 1
+            }
+        }
     }
 }

+ 1 - 1
modules/db.js

@@ -17,7 +17,7 @@ const bindGet = db => path => {
   try {
     return db.getData(path);
   } catch (e) {
-    return null;
+    return {};
   }
 };
 

+ 26 - 1
modules/server.js

@@ -53,7 +53,7 @@ server.pre(cors);
 
 server.put("/register/:name", function(req, res, next) {
   const existingRecord = db.get(`/users/${req.params.name}`);
-  if (existingRecord) {
+  if (existingRecord.name) {
     res.send({ error: errors.register.exists });
   } else {
     db.update(`/users/${req.params.name}`, {
@@ -66,6 +66,31 @@ server.put("/register/:name", function(req, res, next) {
   }
 });
 
+server.post("/win/:name", function(req, res, next) {
+  const user = db.get(`/users/${req.body.name}`);
+  if (user && req.body.password === user.password) {
+    const dbEntry = db.get(`/wins/${req.params.name}`);
+    db.set(`/wins/${req.params.name}`, {
+      ...dbEntry,
+      [req.body.game]: { ...dbEntry[req.body.game], [req.body.name]: 1 }
+    });
+    res.send(db.get(`/wins`));
+  } else {
+    res.send({ error: errors.vote.baduser });
+  }
+  return next();
+});
+
+server.get("/wins", function(req, res, next) {
+  const dbEntry = db.get(`/wins`);
+  if (dbEntry) {
+    res.send(dbEntry);
+  } else {
+    res.send({});
+  }
+  return next();
+});
+
 server.put("/vote/:name", function(req, res, next) {
   const user = db.get(`/users/${req.params.name}`);
   if (user && req.body.password === user.password) {