diff --git a/controllers/player.py b/controllers/player.py index f735b812774f5817ce3864c07a4d9b52976ca182..86b467c11531fb588bbfddc894ff46299122ad91 100644 --- a/controllers/player.py +++ b/controllers/player.py @@ -1,6 +1,7 @@ from parameter_util import JSON_BODY, JSON_CONTAINS -from http_util import FAIL, CODE_JSON, CODE_MISSING, CODE_SEMANTIC, CODE_GONE, CODE_NOTFOUND, CODE_CONFLICT +from http_util import FAIL, SUCCESS, CODE_JSON, CODE_MISSING, CODE_SEMANTIC, CODE_GONE, CODE_NOTFOUND, CODE_CONFLICT from room_util import ROOM_GET_CODE, PLAYERS_GET +from cookie_util import COOKIE_SET def create(): parameters = JSON_BODY(request) @@ -28,5 +29,9 @@ def create(): if player["name"] == user_name: return(FAIL(CODE_CONFLICT)) - db.Player.insert(name=user_name, room_id=room_record.id) - return(200) + player_id = db.Player.insert(name=user_name, room_id=room_record.id) + player_record = db(db.Player.id == player_id).select().first() + + COOKIE_SET(player_record) + + return(SUCCESS()) diff --git a/modules/cookie_util.py b/modules/cookie_util.py new file mode 100644 index 0000000000000000000000000000000000000000..677c34385e2058da21b80e9d5b815301651ddb18 --- /dev/null +++ b/modules/cookie_util.py @@ -0,0 +1,5 @@ +from gluon import * + +def COOKIE_SET(_player): + current.response.cookies["lynchburg_id"] = _player["id"] + current.response.cookies["lynchburg_hash"] = _player["hashcode"] diff --git a/modules/http_util.py b/modules/http_util.py index 99571d5d371cb34334a14d1f800bd3203cce44aa..dd90ad4c99d381132432ba5e92d859e9287e6de3 100644 --- a/modules/http_util.py +++ b/modules/http_util.py @@ -10,3 +10,7 @@ CODE_SEMANTIC = 422 def FAIL(_code): current.response.status = _code return(_code) + +def SUCCESS(): + current.response.status = 200 + return(200) diff --git a/views/default/index.html b/views/default/index.html index 6a09b1f49472c49adfa96efc35e743ae01ad37ec..17da2c149a9a8d255b049a514a132e05045d2095 100644 --- a/views/default/index.html +++ b/views/default/index.html @@ -16,7 +16,9 @@ {{block page_js}} <script type="text/javascript"> $("#form_login").on("submit", function(){ - $("#form_login_error").html(); + + $("#form_login_error").html(""); + var payload = {"room_code": $("#room_code").val(), "user_name": $("#user_name").val()} AJAX_JSON("{{=URL('player', 'create')}}", payload, function(_code, _data){ @@ -33,7 +35,7 @@ $("#form_login_error").html("Please provide valid values."); break; default: - $("#form_login_error").html("Error"); + $("#form_login_error").html("Error "+_code); } });