1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
-module(lgn_handler).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-export([start/1]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec ensure_player_exists (binary(), binary(), binary(), binary()) -> 'ok'.
ensure_player_exists (ID, Username, Password, Email) ->
case shr_database:fetch(player_db, ID, admin) of
{ok, _} -> ok;
not_found ->
shr_database:insert_at
(
player_db,
ID,
any,
any,
lgn_shim:generate_random_player(ID, Username, Password, Email)
)
end,
UsernameLC = string:lowercase(Username),
EmailLC = string:lowercase(Email),
case shr_database:fetch(login_db, UsernameLC, admin) of
{ok, _} -> ok;
not_found -> shr_database:insert_at(login_db, UsernameLC, any, any, ID)
end,
case shr_database:fetch(login_db, EmailLC, admin) of
{ok, _} -> ok;
not_found -> shr_database:insert_at(login_db, EmailLC, any, any, ID)
end,
ok.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec start (pid()) -> 'ok'.
start (TimedCachesManagerPid) ->
ensure_player_exists
(
<<"0">>,
<<"Player1">>,
<<"Kalimer0">>,
<<"P1@Tacticians.Online">>
),
ensure_player_exists
(
<<"1">>,
<<"Player2">>,
<<"Kalimer1">>,
<<"P2@Tacticians.Online">>
),
shr_timed_caches_manager:new_cache(TimedCachesManagerPid, login_db, none),
shr_timed_caches_manager:new_cache(TimedCachesManagerPid, player_db, none),
ok.
|