| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/special/spe_player.erl | 54 | 
1 files changed, 33 insertions, 21 deletions
| diff --git a/src/special/spe_player.erl b/src/special/spe_player.erl index 9cf3fea..50f7784 100644 --- a/src/special/spe_player.erl +++ b/src/special/spe_player.erl @@ -12,27 +12,18 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec generate (binary(), binary(), binary()) -> shr_player:type(). -generate (Username, Password, Email) -> -   UsernameLC = string:lowercase(Username), -   EmailLC = string:lowercase(Email), - +-spec reserve_login (binary(), binary()) -> 'ok'. +reserve_login (UsernameLC, EmailLC) ->     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), +   ok. +-spec finalize_login (binary(), binary(), binary()) -> 'ok'. +finalize_login (UsernameLC, EmailLC, PlayerID) ->     LoginUpdateQueryOps =        [           shr_db_query:set_value(PlayerID), @@ -40,13 +31,6 @@ generate (Username, Password, Email) ->           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        ( @@ -59,12 +43,40 @@ generate (Username, Password, Email) ->           shr_db_query:new(login_db, EmailLC, janitor, LoginUpdateQueryOps)        ), +   'ok'. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec generate (binary(), binary(), binary()) -> shr_player:type(). +generate (Username, Password, Email) -> +   UsernameLC = string:lowercase(Username), +   EmailLC = string:lowercase(Email), + +   ok = reserve_login(UsernameLC, EmailLC), + +   Player = shr_player:new(<<"">>, Username, Password, Email), + +   {ok, PlayerID} = shr_database:insert(player_db, janitor, janitor, Player), + +   shr_janitor:new(player_db, 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 = finalize_login(UsernameLC, EmailLC, PlayerID), +     ok =        shr_database:commit        (           shr_db_query:new(player_db, PlayerID, janitor, PlayerUpdateQueryOps)        ), +     Result = shr_player:set_id(PlayerID, Player),     Result. | 


