From 0d8e11193bf166758c2d9c46190b07b9b76f2958 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Wed, 3 Oct 2018 18:02:03 +0200 Subject: (Broken) still working on it... --- src/special/spe_player.erl | 70 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/special/spe_player.erl (limited to 'src/special/spe_player.erl') diff --git a/src/special/spe_player.erl b/src/special/spe_player.erl new file mode 100644 index 0000000..9cf3fea --- /dev/null +++ b/src/special/spe_player.erl @@ -0,0 +1,70 @@ +-module(spe_player). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export([generate/3]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec generate (binary(), binary(), binary()) -> shr_player:type(). +generate (Username, Password, Email) -> + UsernameLC = string:lowercase(Username), + EmailLC = string:lowercase(Email), + + shr_janitor:new(login_db, UsernameLC), + shr_janitor:new(login_db, EmailLC), + + ok = shr_database:reserve(login_db, UsernameLC, janitor), + ok = shr_database:reserve(login_db, EmailLC, janitor), + + Player = shr_player:new(<<"">>, Username, Password, Email), + + {ok, PlayerID} = shr_database:insert(player_db, janitor, janitor, Player), + + shr_janitor:new(player_db, PlayerID), + + LoginUpdateQueryOps = + [ + shr_db_query:set_value(PlayerID), + shr_db_query:set_read_permission(any), + shr_db_query:set_write_permission([{user, PlayerID}]) + ], + + PlayerUpdateQueryOps = + [ + shr_db_query:set_field(shr_player:get_id_field(), PlayerID), + shr_db_query:set_read_permission(any), + shr_db_query:set_write_permission([{user, PlayerID}]) + ], + + ok = + shr_database:commit + ( + shr_db_query:new(login_db, UsernameLC, janitor, LoginUpdateQueryOps) + ), + + ok = + shr_database:commit + ( + shr_db_query:new(login_db, EmailLC, janitor, LoginUpdateQueryOps) + ), + + ok = + shr_database:commit + ( + shr_db_query:new(player_db, PlayerID, janitor, PlayerUpdateQueryOps) + ), + + Result = shr_player:set_id(PlayerID, Player), + + Result. -- cgit v1.2.3-70-g09d2