summaryrefslogtreecommitdiff
blob: d2a6ee2418745bd6a57230d64db12d2c92ec8eaf (plain)
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.