| summaryrefslogtreecommitdiff | 
diff options
| -rw-r--r-- | src/main-menu/src/Comm/LoadPlayer.elm | 18 | ||||
| -rw-r--r-- | src/main-menu/src/Comm/Send.elm | 4 | ||||
| -rw-r--r-- | src/main-menu/src/Comm/SetPlayer.elm | 26 | ||||
| -rw-r--r-- | src/main-menu/src/Constants/IO.elm.m4 | 14 | ||||
| -rw-r--r-- | src/main-menu/src/ElmModule/Init.elm | 12 | ||||
| -rw-r--r-- | src/main-menu/src/ElmModule/Subscriptions.elm | 2 | ||||
| -rw-r--r-- | src/main-menu/src/Struct/Player.elm | 7 | ||||
| -rw-r--r-- | src/main-menu/src/Update/HandleServerReply.elm | 28 | 
8 files changed, 88 insertions, 23 deletions
| diff --git a/src/main-menu/src/Comm/LoadPlayer.elm b/src/main-menu/src/Comm/LoadPlayer.elm index c4a28ee..f93ed25 100644 --- a/src/main-menu/src/Comm/LoadPlayer.elm +++ b/src/main-menu/src/Comm/LoadPlayer.elm @@ -20,14 +20,18 @@ import Struct.Model  --------------------------------------------------------------------------------  try_encoding : Struct.Model.Type -> (Maybe Json.Encode.Value)  try_encoding model = -   (Just -      (Json.Encode.object -         [ -            ("stk", (Json.Encode.string model.session_token)), -            ("pid", (Json.Encode.string model.player_id)) -         ] +   let +      player_id = (Json.Encode.string model.player_id) +   in +      (Just +         (Json.Encode.object +            [ +               ("stk", (Json.Encode.string model.session_token)), +               ("pid", player_id), +               ("id", player_id) +            ] +         )        ) -   )  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- diff --git a/src/main-menu/src/Comm/Send.elm b/src/main-menu/src/Comm/Send.elm index e488d77..925b956 100644 --- a/src/main-menu/src/Comm/Send.elm +++ b/src/main-menu/src/Comm/Send.elm @@ -8,7 +8,7 @@ import Json.Encode  -- Map -------------------------------------------------------------------  import Comm.Okay -import Comm.SetSession +import Comm.SetPlayer  import Struct.Event  import Struct.ServerReply @@ -25,7 +25,7 @@ internal_decoder : String -> (Json.Decode.Decoder Struct.ServerReply.Type)  internal_decoder reply_type =     case reply_type of        "okay" -> (Comm.Okay.decode) -      "sse" -> (Comm.SetSession.decode) +      "set_plr" -> (Comm.SetPlayer.decode)        other ->           (Json.Decode.fail              ( diff --git a/src/main-menu/src/Comm/SetPlayer.elm b/src/main-menu/src/Comm/SetPlayer.elm new file mode 100644 index 0000000..a595777 --- /dev/null +++ b/src/main-menu/src/Comm/SetPlayer.elm @@ -0,0 +1,26 @@ +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)) diff --git a/src/main-menu/src/Constants/IO.elm.m4 b/src/main-menu/src/Constants/IO.elm.m4 index fdb5ed3..699bab2 100644 --- a/src/main-menu/src/Constants/IO.elm.m4 +++ b/src/main-menu/src/Constants/IO.elm.m4 @@ -3,14 +3,8 @@ module Constants.IO exposing (..)  base_url : String  base_url = "__CONF_SERVER_URL" -login_handler_url : String -login_handler_url = (base_url ++ "/handler/login") +player_handler_url : String +player_handler_url = (base_url ++ "/handler/player") -login_sign_in_handler : String -login_sign_in_handler = (login_handler_url ++ "/lgn_sign_in") - -login_sign_up_handler : String -login_sign_up_handler = (login_handler_url ++ "/lgn_sign_up") - -login_recovery_handler : String -login_recovery_handler = (login_handler_url ++ "/lgn_recovery") +player_loading_handler : String +player_loading_handler = (player_handler_url ++ "/plr_load") diff --git a/src/main-menu/src/ElmModule/Init.elm b/src/main-menu/src/ElmModule/Init.elm index 4cfbcb2..367af39 100644 --- a/src/main-menu/src/ElmModule/Init.elm +++ b/src/main-menu/src/ElmModule/Init.elm @@ -2,7 +2,9 @@ module ElmModule.Init exposing (init)  -- Elm ------------------------------------------------------------------------- --- Map ------------------------------------------------------------------- +-- Main Menu ------------------------------------------------------------------- +import Comm.LoadPlayer +  import Struct.Event  import Struct.Flags  import Struct.Model @@ -15,4 +17,10 @@ import Struct.Model  -- EXPORTED --------------------------------------------------------------------  --------------------------------------------------------------------------------  init : Struct.Flags.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) -init flags = ((Struct.Model.new flags), Cmd.none) +init flags = +   let +      model = (Struct.Model.new flags) +   in +      case (Comm.LoadPlayer.try model) of +         Nothing -> (model, Cmd.none) +         (Just command) -> (model, command) diff --git a/src/main-menu/src/ElmModule/Subscriptions.elm b/src/main-menu/src/ElmModule/Subscriptions.elm index fe276f4..e9b557e 100644 --- a/src/main-menu/src/ElmModule/Subscriptions.elm +++ b/src/main-menu/src/ElmModule/Subscriptions.elm @@ -2,7 +2,7 @@ module ElmModule.Subscriptions exposing (..)  -- Elm ------------------------------------------------------------------------- --- Map ------------------------------------------------------------------- +-- Main Menu -------------------------------------------------------------------  import Struct.Model  import Struct.Event diff --git a/src/main-menu/src/Struct/Player.elm b/src/main-menu/src/Struct/Player.elm index 2a56395..73fbdb3 100644 --- a/src/main-menu/src/Struct/Player.elm +++ b/src/main-menu/src/Struct/Player.elm @@ -1,6 +1,7 @@  module Struct.Player exposing     (        Type, +      get_id,        get_username,        get_maps,        get_campaigns, @@ -25,6 +26,7 @@ import Struct.MapSummary  --------------------------------------------------------------------------------  type alias Type =     { +      id : String,        name : String,        maps : (List Struct.MapSummary.Type),        campaigns : (List Struct.BattleSummary.Type), @@ -41,6 +43,9 @@ type alias Type =  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- +get_id : Type -> String +get_id t = t.id +  get_username : Type -> String  get_username t = t.name @@ -66,6 +71,7 @@ decoder : (Json.Decode.Decoder Type)  decoder =     (Json.Decode.Pipeline.decode        Type +      |> (Json.Decode.Pipeline.required "id" Json.Decode.string)        |> (Json.Decode.Pipeline.required "nme" Json.Decode.string)        |> (Json.Decode.Pipeline.required              "maps" @@ -90,6 +96,7 @@ decoder =  none : Type  none =     { +      id = "",        name = "Unknown",        maps = [],        campaigns = [], diff --git a/src/main-menu/src/Update/HandleServerReply.elm b/src/main-menu/src/Update/HandleServerReply.elm index 18cfdd8..96cb0f1 100644 --- a/src/main-menu/src/Update/HandleServerReply.elm +++ b/src/main-menu/src/Update/HandleServerReply.elm @@ -7,6 +7,7 @@ import Http  import Struct.Error  import Struct.Event  import Struct.Model +import Struct.Player  import Struct.ServerReply  -------------------------------------------------------------------------------- @@ -16,6 +17,31 @@ import Struct.ServerReply  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- +set_player : ( +      Struct.Player.Type -> +      ( +         Struct.Model.Type, +         (Maybe Struct.Error.Type), +         (List (Cmd Struct.Event.Type)) +      ) -> +      ( +         Struct.Model.Type, +         (Maybe Struct.Error.Type), +         (List (Cmd Struct.Event.Type)) +      ) +   ) +set_player player current_state = +   let +      (model, error, event_list) = current_state +   in +      ( +         {model | +            player = player +         }, +         error, +         event_list +      ) +  apply_command : (        Struct.ServerReply.Type ->        ( @@ -31,7 +57,7 @@ apply_command : (     )  apply_command command current_state =     case command of -      (Struct.ServerReply.SetPlayer _) -> current_state +      (Struct.ServerReply.SetPlayer player) -> (set_player player current_state)        Struct.ServerReply.Okay -> current_state  -------------------------------------------------------------------------------- | 


