summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/player/plr_handler.erl21
-rw-r--r--src/player/query/plr_load.erl99
-rw-r--r--src/player/reply/plr_set_player.erl61
-rw-r--r--src/query/qry_handler.erl1
-rw-r--r--src/shared/struct/shr_battle_summary.erl134
-rw-r--r--src/shared/struct/shr_map_summary.erl102
-rw-r--r--src/shared/struct/shr_player.erl92
7 files changed, 499 insertions, 11 deletions
diff --git a/src/player/plr_handler.erl b/src/player/plr_handler.erl
new file mode 100644
index 0000000..e4dc07e
--- /dev/null
+++ b/src/player/plr_handler.erl
@@ -0,0 +1,21 @@
+-module(plr_handler).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export([start/1]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec start (pid()) -> 'ok'.
+start (_TimedCachesManagerPid) ->
+ ok.
diff --git a/src/player/query/plr_load.erl b/src/player/query/plr_load.erl
new file mode 100644
index 0000000..7adb114
--- /dev/null
+++ b/src/player/query/plr_load.erl
@@ -0,0 +1,99 @@
+-module(plr_load).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-include("../../../include/yaws_api.hrl").
+
+-record
+(
+ input,
+ {
+ player_id :: btl_player:id(),
+ session_token :: binary(),
+ target_id :: binary()
+ }
+).
+
+-record
+(
+ query_state,
+ {
+ player :: shr_player:type()
+ }
+).
+
+-type input() :: #input{}.
+-type query_state() :: #query_state{}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export([out/1]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec parse_input (binary()) -> input().
+parse_input (Req) ->
+ JSONReqMap = jiffy:decode(Req, [return_maps]),
+ PlayerID = maps:get(<<"pid">>, JSONReqMap),
+ SessionToken = maps:get(<<"stk">>, JSONReqMap),
+ TargetID = maps:get(<<"id">>, JSONReqMap),
+
+ #input
+ {
+ player_id = PlayerID,
+ session_token = SessionToken,
+ target_id = TargetID
+ }.
+
+-spec authenticate_user (input()) -> 'ok'.
+authenticate_user (Input) ->
+ PlayerID = Input#input.player_id,
+ SessionToken = Input#input.session_token,
+
+ Player = shr_timed_cache:fetch(player_db, any, PlayerID),
+
+ shr_security:assert_identity(SessionToken, Player),
+
+ ok.
+
+-spec fetch_data (input()) -> query_state().
+fetch_data (Input) ->
+ TargetID = Input#input.target_id,
+
+ Player = shr_timed_cache:fetch(player_db, any, TargetID),
+
+ #query_state
+ {
+ player = Player
+ }.
+
+
+-spec generate_reply(query_state(), input()) -> binary().
+generate_reply (QueryState, _Input) ->
+ Player = QueryState#query_state.player,
+
+ Output = jiffy:encode([plr_set_player:generate(Player)]),
+
+ Output.
+
+-spec handle (binary()) -> binary().
+handle (Req) ->
+ Input = parse_input(Req),
+ authenticate_user(Input),
+ shr_security:lock_queries(Input#input.player_id),
+ QueryState = fetch_data(Input),
+ shr_security:unlock_queries(Input#input.player_id),
+ generate_reply(QueryState, Input).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+out(A) ->
+ {
+ content,
+ "application/json; charset=UTF-8",
+ handle(A#arg.clidata)
+ }.
diff --git a/src/player/reply/plr_set_player.erl b/src/player/reply/plr_set_player.erl
new file mode 100644
index 0000000..46f3747
--- /dev/null
+++ b/src/player/reply/plr_set_player.erl
@@ -0,0 +1,61 @@
+-module(plr_set_player).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export([generate/1]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec generate (shr_player:type()) -> {list(any())}.
+generate (Player) ->
+ MapList =
+ lists:map
+ (
+ fun shr_map_summary:encode/1,
+ array:to_list(shr_player:get_map_summaries(Player))
+ ),
+
+ CampaignList =
+ lists:map
+ (
+ fun shr_battle_summary:encode/1,
+ array:to_list(shr_player:get_campaign_summaries(Player))
+ ),
+
+ InvasionList =
+ lists:map
+ (
+ fun shr_battle_summary:encode/1,
+ array:to_list(shr_player:get_invasion_summaries(Player))
+ ),
+
+ EventList =
+ lists:map
+ (
+ fun shr_battle_summary:encode/1,
+ array:to_list(shr_player:get_event_summaries(Player))
+ ),
+
+ {
+ [
+ {<<"msg">>, <<"set_plr">>},
+ {<<"id">>, shr_player:get_id(Player)},
+ {<<"nme">>, shr_player:get_username(Player)},
+ {<<"maps">>, MapList},
+ {<<"cmps">>, CampaignList},
+ {<<"invs">>, InvasionList},
+ {<<"evts">>, EventList},
+ {<<"rtid">>, shr_player:get_roster_id(Player)},
+ {<<"ivid">>, shr_player:get_inventory_id(Player)}
+ ]
+ }.
diff --git a/src/query/qry_handler.erl b/src/query/qry_handler.erl
index e6f05ac..a6caf89 100644
--- a/src/query/qry_handler.erl
+++ b/src/query/qry_handler.erl
@@ -19,6 +19,7 @@
-spec start (any()) -> 'ok'.
start (_YawsParams) ->
{ok, TimedCachesManagerPid} = shr_timed_caches_manager:start(),
+ ok = plr_handler:start(TimedCachesManagerPid),
ok = lgn_handler:start(TimedCachesManagerPid),
ok = btl_handler:start(TimedCachesManagerPid),
ok = map_handler:start(TimedCachesManagerPid),
diff --git a/src/shared/struct/shr_battle_summary.erl b/src/shared/struct/shr_battle_summary.erl
new file mode 100644
index 0000000..3470575
--- /dev/null
+++ b/src/shared/struct/shr_battle_summary.erl
@@ -0,0 +1,134 @@
+-module(shr_battle_summary).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-record
+(
+ battle_summary,
+ {
+ id :: binary(),
+ name :: binary(),
+ last_edit :: binary(),
+ is_players_turn :: boolean()
+ }
+).
+
+-opaque type() :: #battle_summary{}.
+
+-export_type([type/0]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ new/4
+ ]
+).
+
+%%%% Accessors
+-export
+(
+ [
+ get_id/1,
+ get_name/1,
+ get_last_edit/1,
+ is_players_turn/1
+ ]
+).
+-export
+(
+ [
+ set_id/2,
+ set_name/2,
+ set_last_edit/2,
+ set_is_players_turn/2
+ ]
+).
+
+-export
+(
+ [
+ get_id_field/0,
+ get_name_field/0,
+ get_last_edit_field/0,
+ get_is_players_turn_field/0
+ ]
+).
+
+%%%% Export
+-export
+(
+ [
+ encode/1
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec new (binary(), binary(), binary(), boolean()) -> type().
+new (ID, Name, Time, IsPlayersTurn) ->
+ #battle_summary
+ {
+ id = ID,
+ name = Name,
+ last_edit = Time,
+ is_players_turn = IsPlayersTurn
+ }.
+
+%%%% Accessors
+-spec get_id (type()) -> binary().
+get_id (BattleSummary) -> BattleSummary#battle_summary.id.
+
+-spec get_name (type()) -> binary().
+get_name (BattleSummary) -> BattleSummary#battle_summary.name.
+
+-spec get_last_edit (type()) -> binary().
+get_last_edit (BattleSummary) -> BattleSummary#battle_summary.last_edit.
+
+-spec is_players_turn (type()) -> boolean().
+is_players_turn (BattleSummary) -> BattleSummary#battle_summary.is_players_turn.
+
+-spec set_id (binary(), type()) -> type().
+set_id (Val, BattleSummary) -> BattleSummary#battle_summary{ id = Val }.
+
+-spec set_name (binary(), type()) -> type().
+set_name (Val, BattleSummary) -> BattleSummary#battle_summary{ name = Val }.
+
+-spec set_last_edit (binary(), type()) -> type().
+set_last_edit (Val, BattleSummary) ->
+ BattleSummary#battle_summary{ last_edit = Val }.
+
+-spec set_is_players_turn (boolean(), type()) -> type().
+set_is_players_turn (Val, BattleSummary) ->
+ BattleSummary#battle_summary{ is_players_turn = Val }.
+
+-spec get_id_field () -> non_neg_integer().
+get_id_field () -> #battle_summary.id.
+
+-spec get_name_field () -> non_neg_integer().
+get_name_field () -> #battle_summary.name.
+
+-spec get_last_edit_field () -> non_neg_integer().
+get_last_edit_field () -> #battle_summary.last_edit.
+
+-spec get_is_players_turn_field () -> non_neg_integer().
+get_is_players_turn_field () -> #battle_summary.is_players_turn.
+
+-spec encode (type()) -> {list(any())}.
+encode (BattleSummary) ->
+ {
+ [
+ {<<"id">>, BattleSummary#battle_summary.id},
+ {<<"nme">>, BattleSummary#battle_summary.name},
+ {<<"ldt">>, BattleSummary#battle_summary.last_edit},
+ {<<"ipt">>, BattleSummary#battle_summary.is_players_turn}
+ ]
+ }.
diff --git a/src/shared/struct/shr_map_summary.erl b/src/shared/struct/shr_map_summary.erl
new file mode 100644
index 0000000..a7a1283
--- /dev/null
+++ b/src/shared/struct/shr_map_summary.erl
@@ -0,0 +1,102 @@
+-module(shr_map_summary).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-record
+(
+ map_summary,
+ {
+ id :: binary(),
+ name :: binary()
+ }
+).
+
+-opaque type() :: #map_summary{}.
+
+-export_type([type/0]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ new/2
+ ]
+).
+
+%%%% Accessors
+-export
+(
+ [
+ get_id/1,
+ get_name/1
+ ]
+).
+-export
+(
+ [
+ set_id/2,
+ set_name/2
+ ]
+).
+
+-export
+(
+ [
+ get_id_field/0,
+ get_name_field/0
+ ]
+).
+
+%%%% Export
+-export
+(
+ [
+ encode/1
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec new (binary(), binary()) -> type().
+new (ID, Name) ->
+ #map_summary
+ {
+ id = ID,
+ name = Name
+ }.
+
+%%%% Accessors
+-spec get_id (type()) -> binary().
+get_id (MapSummary) -> MapSummary#map_summary.id.
+
+-spec get_name (type()) -> binary().
+get_name (MapSummary) -> MapSummary#map_summary.name.
+
+-spec set_id (binary(), type()) -> type().
+set_id (Val, MapSummary) -> MapSummary#map_summary{ id = Val }.
+
+-spec set_name (binary(), type()) -> type().
+set_name (Val, MapSummary) -> MapSummary#map_summary{ name = Val }.
+
+-spec get_id_field () -> non_neg_integer().
+get_id_field () -> #map_summary.id.
+
+-spec get_name_field () -> non_neg_integer().
+get_name_field () -> #map_summary.name.
+
+-spec encode (type()) -> {list(any())}.
+encode (MapSummary) ->
+ {
+ [
+ {<<"id">>, MapSummary#map_summary.id},
+ {<<"nme">>, MapSummary#map_summary.name}
+ ]
+ }.
diff --git a/src/shared/struct/shr_player.erl b/src/shared/struct/shr_player.erl
index 0843e87..7cd60d7 100644
--- a/src/shared/struct/shr_player.erl
+++ b/src/shared/struct/shr_player.erl
@@ -16,7 +16,10 @@
token :: binary(), % salt(crypto:strong_rand_bytes(512))
email :: binary(),
last_active :: integer(),
- maps :: list(binary()),
+ maps :: array:array(shr_map_summary:type()),
+ campaigns :: array:array(shr_battle_summary:type()),
+ invasions :: array:array(shr_battle_summary:type()),
+ events :: array:array(shr_battle_summary:type()),
roster_id :: binary(),
inventory_id :: binary()
}
@@ -46,7 +49,10 @@
get_token/1,
get_email/1,
get_last_active/1,
- get_maps/1,
+ get_map_summaries/1,
+ get_campaign_summaries/1,
+ get_invasion_summaries/1,
+ get_event_summaries/1,
get_inventory_id/1,
get_roster_id/1,
@@ -56,7 +62,10 @@
new_token/1,
set_email/2,
refresh_active/1,
- set_maps/2,
+ set_map_summaries/2,
+ set_campaign_summaries/2,
+ set_invasion_summaries/2,
+ set_event_summaries/2,
set_inventory_id/2,
set_roster_id/2
]
@@ -71,7 +80,10 @@
get_token_field/0,
get_email_field/0,
get_last_active_field/0,
- get_maps_field/0,
+ get_map_summaries_field/0,
+ get_campaign_summaries_field/0,
+ get_invasion_summaries_field/0,
+ get_event_summaries_field/0,
get_inventory_id_field/0,
get_roster_id_field/0
]
@@ -103,6 +115,7 @@ secure_value (Salt, Val) ->
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec new (binary(), binary(), binary(), binary()) -> type().
new (ID, Username, Password, Email) ->
+ EmptyArray = array:new(),
Result =
#player
{
@@ -112,7 +125,10 @@ new (ID, Username, Password, Email) ->
token = <<"">>,
email = Email,
last_active = 0,
- maps = [],
+ maps = EmptyArray,
+ campaigns = EmptyArray,
+ invasions = EmptyArray,
+ events = EmptyArray,
inventory_id = <<"0">>,
roster_id = <<"0">>
},
@@ -142,8 +158,17 @@ get_email (Player) -> Player#player.email.
-spec get_last_active (type()) -> integer().
get_last_active (Player) -> Player#player.last_active.
--spec get_maps (type()) -> list(binary()).
-get_maps (Player) -> Player#player.maps.
+-spec get_map_summaries (type()) -> array:array(shr_map_summary:type()).
+get_map_summaries (Player) -> Player#player.maps.
+
+-spec get_campaign_summaries (type()) -> array:array(shr_battle_summary:type()).
+get_campaign_summaries (Player) -> Player#player.campaigns.
+
+-spec get_invasion_summaries (type()) -> array:array(shr_battle_summary:type()).
+get_invasion_summaries (Player) -> Player#player.invasions.
+
+-spec get_event_summaries (type()) -> array:array(shr_battle_summary:type()).
+get_event_summaries (Player) -> Player#player.events.
-spec get_roster_id (type()) -> binary().
get_roster_id (Player) -> Player#player.roster_id.
@@ -184,8 +209,44 @@ refresh_active (Player) ->
last_active = erlang:system_time(second)
}.
--spec set_maps (list(binary()), type()) -> type().
-set_maps (Maps, Player) -> Player#player{ maps = Maps }.
+-spec set_map_summaries (array:array(shr_map_summary:type()), type()) -> type().
+set_map_summaries (Maps, Player) -> Player#player{ maps = Maps }.
+
+-spec set_campaign_summaries
+ (
+ array:array(shr_battle_summary:type()),
+ type()
+ )
+ -> type().
+set_campaign_summaries (Campaigns, Player) ->
+ Player#player
+ {
+ campaigns = Campaigns
+ }.
+
+-spec set_invasion_summaries
+ (
+ array:array(shr_battle_summary:type()),
+ type()
+ )
+ -> type().
+set_invasion_summaries (Invasions, Player) ->
+ Player#player
+ {
+ invasions = Invasions
+ }.
+
+-spec set_event_summaries
+ (
+ array:array(shr_battle_summary:type()),
+ type()
+ )
+ -> type().
+set_event_summaries (Events, Player) ->
+ Player#player
+ {
+ events = Events
+ }.
-spec set_roster_id (binary(), type()) -> type().
set_roster_id (RosterID, Player) -> Player#player{ roster_id = RosterID }.
@@ -211,8 +272,17 @@ get_email_field () -> #player.email.
-spec get_last_active_field () -> non_neg_integer().
get_last_active_field () -> #player.last_active.
--spec get_maps_field () -> non_neg_integer().
-get_maps_field () -> #player.maps.
+-spec get_map_summaries_field () -> non_neg_integer().
+get_map_summaries_field () -> #player.maps.
+
+-spec get_campaign_summaries_field () -> non_neg_integer().
+get_campaign_summaries_field () -> #player.campaigns.
+
+-spec get_invasion_summaries_field () -> non_neg_integer().
+get_invasion_summaries_field () -> #player.invasions.
+
+-spec get_event_summaries_field () -> non_neg_integer().
+get_event_summaries_field () -> #player.events.
-spec get_roster_id_field () -> non_neg_integer().
get_roster_id_field () -> #player.roster_id.