summaryrefslogtreecommitdiff
path: root/src/Comm
diff options
context:
space:
mode:
Diffstat (limited to 'src/Comm')
-rw-r--r--src/Comm/GetBattles.elm14
-rw-r--r--src/Comm/Okay.elm6
-rw-r--r--src/Comm/Send.elm11
-rw-r--r--src/Comm/SetBattles.elm51
-rw-r--r--src/Comm/SetPlayer.elm26
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))