From ad9535ddc9cc733548d7c1701add913ef9a7fc79 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Mon, 1 Oct 2018 15:05:41 +0200 Subject: Adds a way to retrieve player ids from usernames. --- conf/yaws.conf.m4 | 2 +- src/login/query/lgn_get_player_id.erl | 44 +++++++++++++++++++++++++++++++++++ src/login/reply/lgn_set_player_id.erl | 26 +++++++++++++++++++++ src/player/query/plr_get_battles.erl | 6 ++--- 4 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 src/login/query/lgn_get_player_id.erl create mode 100644 src/login/reply/lgn_set_player_id.erl diff --git a/conf/yaws.conf.m4 b/conf/yaws.conf.m4 index 6f0bea1..c480391 100644 --- a/conf/yaws.conf.m4 +++ b/conf/yaws.conf.m4 @@ -110,6 +110,6 @@ keepalive_timeout = 30000 listen = 0.0.0.0 docroot = __MAKEFILE_WWW_DIR auth_log = true - appmods = btl_character_turn btl_load map_load map_update lgn_sign_in lgn_sign_up lgn_recovery rst_load rst_update plr_load plr_get_battles + appmods = btl_character_turn btl_load map_load map_update lgn_sign_in lgn_sign_up lgn_recovery lgn_get_player_id rst_load rst_update plr_load plr_get_battles start_mod = qry_handler diff --git a/src/login/query/lgn_get_player_id.erl b/src/login/query/lgn_get_player_id.erl new file mode 100644 index 0000000..09061fe --- /dev/null +++ b/src/login/query/lgn_get_player_id.erl @@ -0,0 +1,44 @@ +-module(lgn_get_player_id). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-include("../../../include/yaws_api.hrl"). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export([out/1]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec fetch_data (binary()) -> binary(). +fetch_data (Input) -> + PlayerID = shr_timed_cache:fetch(login_db, any, Input), + + PlayerID. + +-spec generate_reply(binary()) -> binary(). +generate_reply (PlayerID) -> + SetPlayerID = lgn_set_player_id:generate(PlayerID), + Output = jiffy:encode([SetPlayerID]), + + Output. + +-spec handle (binary()) -> binary(). +handle (UsernameOrEmail) -> + PlayerID = fetch_data(UsernameOrEmail), + generate_reply(PlayerID). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +out(A) -> + {ok, UsernameOrEmailTXT} = yaws_api:queryvar(A, "name"), + UsernameOrEmail = list_to_binary(UsernameOrEmailTXT), + { + content, + "application/json; charset=UTF-8", + handle(UsernameOrEmail) + }. diff --git a/src/login/reply/lgn_set_player_id.erl b/src/login/reply/lgn_set_player_id.erl new file mode 100644 index 0000000..6c5d207 --- /dev/null +++ b/src/login/reply/lgn_set_player_id.erl @@ -0,0 +1,26 @@ +-module(lgn_set_player_id). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export([generate/1]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec generate (binary()) -> {list(any())}. +generate (PlayerID) -> + { + [ + {<<"msg">>, <<"spi">>}, + {<<"pid">>, PlayerID} + ] + }. diff --git a/src/player/query/plr_get_battles.erl b/src/player/query/plr_get_battles.erl index e9b4f13..78f68fd 100644 --- a/src/player/query/plr_get_battles.erl +++ b/src/player/query/plr_get_battles.erl @@ -45,8 +45,7 @@ generate_reply (QueryState) -> Output. -spec handle (binary()) -> binary(). -handle (PlayerIDTXT) -> - PlayerID = list_to_binary(PlayerIDTXT), +handle (PlayerID) -> QueryState = fetch_data(PlayerID), generate_reply(QueryState). @@ -54,7 +53,8 @@ handle (PlayerIDTXT) -> %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% out(A) -> - {ok, PlayerID} = yaws_api:queryvar(A, "pid"), + {ok, PlayerIDTXT} = yaws_api:queryvar(A, "pid"), + PlayerID = list_to_binary(PlayerIDTXT), { content, "application/json; charset=UTF-8", -- cgit v1.2.3-70-g09d2