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