summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-10-03 18:02:03 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-10-03 18:02:03 +0200 |
commit | 0d8e11193bf166758c2d9c46190b07b9b76f2958 (patch) | |
tree | 5c09229233c0aed54738facfe4946195bc0ae0a8 /src/special/spe_player.erl | |
parent | 00274059ed4db5b0f2be088b0098e376d836f6d2 (diff) |
(Broken) still working on it...
Diffstat (limited to 'src/special/spe_player.erl')
-rw-r--r-- | src/special/spe_player.erl | 70 |
1 files changed, 70 insertions, 0 deletions
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. |