Skip to content
Snippets Groups Projects
Commit bce61e2f authored by Nils G.'s avatar Nils G.
Browse files

Prvent user with the same user name to enter the same room

parent 1d3ed4d2
No related branches found
No related tags found
No related merge requests found
from parameter_util import JSON_BODY, JSON_CONTAINS from parameter_util import JSON_BODY, JSON_CONTAINS
from http_util import FAIL, CODE_JSON, CODE_MISSING, CODE_SEMANTIC, CODE_GONE, CODE_NOTFOUND from http_util import FAIL, CODE_JSON, CODE_MISSING, CODE_SEMANTIC, CODE_GONE, CODE_NOTFOUND, CODE_CONFLICT
from room_util import ROOM_GET_CODE from room_util import ROOM_GET_CODE, PLAYERS_GET
def create(): def create():
parameters = JSON_BODY(request) parameters = JSON_BODY(request)
...@@ -22,5 +22,11 @@ def create(): ...@@ -22,5 +22,11 @@ def create():
if not room_record: if not room_record:
return(FAIL(CODE_NOTFOUND)) return(FAIL(CODE_NOTFOUND))
players = PLAYERS_GET(room_record)
for player in players:
if player["name"] == user_name:
return(FAIL(CODE_CONFLICT))
db.Player.insert(name=user_name, room_id=room_record.id) db.Player.insert(name=user_name, room_id=room_record.id)
return(200) return(200)
from gluon import * from gluon import *
CODE_MISSING = 400 CODE_MISSING = 400
CODE_NOTFOUND = 404
CODE_JSON = 406 CODE_JSON = 406
CODE_CONFLICT = 409
CODE_GONE = 410 CODE_GONE = 410
CODE_SEMANTIC = 422 CODE_SEMANTIC = 422
CODE_NOTFOUND = 404
def FAIL(_code): def FAIL(_code):
current.response.status = _code current.response.status = _code
......
.error {
color: red;
}
/* ============== Footer ===================== */
#footer { #footer {
position: fixed; position: fixed;
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<form id="form_login"> <form id="form_login">
<input type="text" id="room_code" placeholder="Room Code" maxlength="4"><br><br> <input type="text" id="room_code" placeholder="Room Code" maxlength="4"><br><br>
<input type="text" id="user_name" placeholder="User Name" maxlength="15"><br><br> <input type="text" id="user_name" placeholder="User Name" maxlength="15"><br><br>
<span id="form_login_error" class="error"></span><br>
<input type="submit" value="Enter"> <input type="submit" value="Enter">
</form> </form>
</div> </div>
...@@ -15,8 +16,27 @@ ...@@ -15,8 +16,27 @@
{{block page_js}} {{block page_js}}
<script type="text/javascript"> <script type="text/javascript">
$("#form_login").on("submit", function(){ $("#form_login").on("submit", function(){
$("#form_login_error").html();
var payload = {"room_code": $("#room_code").val(), "user_name": $("#user_name").val()} var payload = {"room_code": $("#room_code").val(), "user_name": $("#user_name").val()}
AJAX_JSON("{{=URL('player', 'create')}}", payload, function(code, data){alert(code);}); AJAX_JSON("{{=URL('player', 'create')}}", payload, function(_code, _data){
switch(_code){
case 200:
break;
case 404:
$("#form_login_error").html("Room could not be found.");
break;
case 409:
$("#form_login_error").html("Please choose a different user name.");
break;
case 422:
$("#form_login_error").html("Please provide valid values.");
break;
default:
$("#form_login_error").html("Error");
}
});
return false; return false;
}); });
</script> </script>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment