From 96c75d8a3ce23ac4b2cff9c74a4051cb2556604a Mon Sep 17 00:00:00 2001
From: Nils G <nils.gondermann@ruhr-uni-bochum.de>
Date: Mon, 6 Apr 2020 16:37:11 +0200
Subject: [PATCH] Add API for /room/status

---
 controllers/room.py  | 24 ++++++++++++++++++++++++
 modules/room_util.py | 12 ++++++++++++
 2 files changed, 36 insertions(+)
 create mode 100644 modules/room_util.py

diff --git a/controllers/room.py b/controllers/room.py
index 0fcd9ea..b981fbd 100644
--- a/controllers/room.py
+++ b/controllers/room.py
@@ -1,5 +1,6 @@
 from parameter_util import JSON_BODY, JSON_CONTAINS
 from http_util import FAIL, CODE_JSON, CODE_MISSING, CODE_SEMANTIC
+from room_util import ROOM_GET
 
 import random
 
@@ -23,3 +24,26 @@ def create():
     json = {"room_id": room_id, "room_code": room_record.code, "room_pw": room_record.hashcode}
 
     return(response.json(json))
+
+
+def status():
+    parameters = JSON_BODY(request)
+
+    if parameters == None:
+        return(FAIL(CODE_JSON))
+
+    if not JSON_CONTAINS(parameters, [('room_id', int), ('room_pw', str)]):
+        return(FAIL(CODE_MISSING))
+
+    room_id = parameters['room_id']
+    room_pw = parameters['room_pw']
+
+    room_record = ROOM_GET(room_id, room_pw)
+
+    if not room_record:
+        return(FAIL(CODE_SEMANTIC))
+
+
+    json = {"players": []}
+
+    return(response.json(json))
diff --git a/modules/room_util.py b/modules/room_util.py
new file mode 100644
index 0000000..c9eb7ba
--- /dev/null
+++ b/modules/room_util.py
@@ -0,0 +1,12 @@
+from gluon import *
+
+def ROOM_GET(_id, _password):
+    room_record = current.db(current.db.Room.id == _id).select().first()
+
+    if not room_record:
+        return(None)
+
+    if room_record.hashcode != _password:
+        return(None)
+
+    return(room_record)
-- 
GitLab