| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/Comm')
| -rw-r--r-- | src/Comm/GetBattles.elm | 14 | ||||
| -rw-r--r-- | src/Comm/Okay.elm | 6 | ||||
| -rw-r--r-- | src/Comm/Send.elm | 11 | ||||
| -rw-r--r-- | src/Comm/SetBattles.elm | 51 | ||||
| -rw-r--r-- | src/Comm/SetPlayer.elm | 26 |
5 files changed, 68 insertions, 40 deletions
diff --git a/src/Comm/GetBattles.elm b/src/Comm/GetBattles.elm index 59b8d1d..0956972 100644 --- a/src/Comm/GetBattles.elm +++ b/src/Comm/GetBattles.elm @@ -5,8 +5,10 @@ import Json.Encode -- Extension ------------------------------------------------------------------- import Comm.Send + import Struct.Event import Struct.Model +import Struct.Player -------------------------------------------------------------------------------- -- TYPES ------------------------------------------------------------------------ @@ -31,11 +33,13 @@ try_encoding player_id model = -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- -try : Struct.Model.Type -> String -> (Maybe (Cmd Struct.Event.Type)) -try model player_id = +try : Struct.Model.Type -> Struct.Player.Type -> (Maybe (Cmd Struct.Event.Type)) +try model player = (Comm.Send.try_sending model - -- FIXME: this is a param now... - Constants.IO.get_battles_handler - (try_encoding player_id) + ( + (Struct.Player.get_query_url player) + ++ "/handler/player/plr_get_battles" + ) + (try_encoding (Struct.Player.get_id player)) ) diff --git a/src/Comm/Okay.elm b/src/Comm/Okay.elm index ca7a2eb..9281558 100644 --- a/src/Comm/Okay.elm +++ b/src/Comm/Okay.elm @@ -1,4 +1,4 @@ -module Comm.Okay exposing (decode) +module Comm.Okay exposing (decoder) -- Elm ------------------------------------------------------------------------- import Json.Decode @@ -17,5 +17,5 @@ import Struct.ServerReply -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- -decode : (Json.Decode.Decoder Struct.ServerReply.Type) -decode = (Json.Decode.succeed Struct.ServerReply.Okay) +decoder : (Json.Decode.Decoder Struct.ServerReply.Type) +decoder = (Json.Decode.succeed Struct.ServerReply.Okay) diff --git a/src/Comm/Send.elm b/src/Comm/Send.elm index dd9dc28..3fc30ae 100644 --- a/src/Comm/Send.elm +++ b/src/Comm/Send.elm @@ -24,8 +24,8 @@ import Struct.Model internal_decoder : String -> (Json.Decode.Decoder Struct.ServerReply.Type) internal_decoder reply_type = case reply_type of - "okay" -> (Comm.Okay.decode) - "set_battles" -> (Comm.SetBattles.decode) + "okay" -> (Comm.Okay.decoder) + "set_battles" -> (Comm.SetBattles.decoder) other -> (Json.Decode.fail ( @@ -35,15 +35,14 @@ internal_decoder reply_type = ) ) -decode : (Json.Decode.Decoder Struct.ServerReply.Type) -decode = +decoder : (Json.Decode.Decoder Struct.ServerReply.Type) +decoder = (Json.Decode.field "msg" Json.Decode.string) |> (Json.Decode.andThen (internal_decoder)) -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- --- TODO: turn this into a multi-server version. try_sending : ( Struct.Model.Type -> String -> @@ -59,7 +58,7 @@ try_sending model recipient try_encoding_fun = (Http.post recipient (Http.jsonBody serial) - (Json.Decode.list (decode)) + (Json.Decode.list (decoder)) ) ) ) diff --git a/src/Comm/SetBattles.elm b/src/Comm/SetBattles.elm new file mode 100644 index 0000000..0add112 --- /dev/null +++ b/src/Comm/SetBattles.elm @@ -0,0 +1,51 @@ +module Comm.SetBattles exposing (decoder) + +-- Elm ------------------------------------------------------------------------- +import Json.Decode + +-- Extension ------------------------------------------------------------------- +import Struct.BattleSummary +import Struct.Player +import Struct.ServerReply + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type alias Battles = + { + campaigns : (List Struct.BattleSummary.Type), + invasions : (List Struct.BattleSummary.Type), + events : (List Struct.BattleSummary.Type) + } + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +internal_decoder : (Json.Decode.Decoder Battles) +internal_decoder = + (Json.Decode.map3 + Battles + (Json.Decode.field + "cmps" + (Json.Decode.list (Struct.BattleSummary.decoder)) + ) + (Json.Decode.field + "invs" + (Json.Decode.list (Struct.BattleSummary.decoder)) + ) + (Json.Decode.field + "evts" + (Json.Decode.list (Struct.BattleSummary.decoder)) + ) + ) + +to_server_reply : Battles -> Struct.ServerReply.Type +to_server_reply t = + (Struct.ServerReply.SetBattles (t.campaigns, t.invasions, t.events)) + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +decoder : (Json.Decode.Decoder Struct.ServerReply.Type) +decoder = + (Json.Decode.map (to_server_reply) (internal_decoder)) diff --git a/src/Comm/SetPlayer.elm b/src/Comm/SetPlayer.elm deleted file mode 100644 index a595777..0000000 --- a/src/Comm/SetPlayer.elm +++ /dev/null @@ -1,26 +0,0 @@ -module Comm.SetPlayer exposing (decode) - --- Elm ------------------------------------------------------------------------- -import Json.Decode - --- Map ------------------------------------------------------------------------- -import Struct.Player -import Struct.ServerReply - --------------------------------------------------------------------------------- --- TYPES ----------------------------------------------------------------------- --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -internal_decoder : Struct.Player.Type -> Struct.ServerReply.Type -internal_decoder player = - (Struct.ServerReply.SetPlayer player) - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -decode : (Json.Decode.Decoder Struct.ServerReply.Type) -decode = - (Json.Decode.map (internal_decoder) (Struct.Player.decoder)) |


