| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/Struct')
| -rw-r--r-- | src/Struct/Event.elm | 3 | ||||
| -rw-r--r-- | src/Struct/Flags.elm | 18 | ||||
| -rw-r--r-- | src/Struct/Model.elm | 12 | ||||
| -rw-r--r-- | src/Struct/Player.elm | 62 | ||||
| -rw-r--r-- | src/Struct/ServerReply.elm | 13 | 
5 files changed, 80 insertions, 28 deletions
| diff --git a/src/Struct/Event.elm b/src/Struct/Event.elm index 68bca98..eafd812 100644 --- a/src/Struct/Event.elm +++ b/src/Struct/Event.elm @@ -13,10 +13,13 @@ import Struct.ServerReply  type Type =     None     | Failed Struct.Error.Type +   | AddPlayer +   | ShouldRefresh     | SetUsername String     | SetID String     | SetURLPrefix String     | SetFrequency Int +   | StoreParams     | ServerReplied (Result Http.Error (List Struct.ServerReply.Type))  attempted : (Result.Result err val) -> Type diff --git a/src/Struct/Flags.elm b/src/Struct/Flags.elm index d9d2dcd..e5a79f8 100644 --- a/src/Struct/Flags.elm +++ b/src/Struct/Flags.elm @@ -6,10 +6,10 @@ module Struct.Flags exposing     )  -- Elm ------------------------------------------------------------------------- -import List +import Json.Decode --- Shared ---------------------------------------------------------------------- -import Util.List +-- Extension ------------------------------------------------------------------- +import Struct.Player  --------------------------------------------------------------------------------  -- TYPES ----------------------------------------------------------------------- @@ -30,5 +30,13 @@ type alias Type =  get_frequency : Type -> Int  get_frequency flags = flags.frequency -get_players : Type -> String -get_players flags = flags.players +get_players : Type -> (List Struct.Player.Type) +get_players flags = +   case +      (Json.Decode.decodeString +         (Json.Decode.list (Struct.Player.decoder)) +         flags.players +      ) +   of +      (Ok result) -> result +      (Err _) -> [] diff --git a/src/Struct/Model.elm b/src/Struct/Model.elm index 6d4a588..dca14c2 100644 --- a/src/Struct/Model.elm +++ b/src/Struct/Model.elm @@ -22,7 +22,9 @@ type alias Type =     {        flags: Struct.Flags.Type,        error: (Maybe Struct.Error.Type), -      players: (Array.Array Struct.Player.Type) +      players: (Array.Array Struct.Player.Type), +      query_index: Int, +      notify: Bool     }  -------------------------------------------------------------------------------- @@ -37,13 +39,17 @@ new flags =     {        flags = flags,        error = Nothing, -      players = (Array.empty) +      players = (Array.fromList (Struct.Flags.get_players flags)), +      query_index = -1, +      notify = False     }  reset : Type -> Type  reset model =     {model | -      error = Nothing +      error = Nothing, +      notify = False, +      query_index = -1     }  invalidate : Struct.Error.Type -> Type -> Type diff --git a/src/Struct/Player.elm b/src/Struct/Player.elm index 6a81daf..1e8365a 100644 --- a/src/Struct/Player.elm +++ b/src/Struct/Player.elm @@ -1,24 +1,26 @@  module Struct.Player exposing     (        Type, -      get_ix, -      set_ix,        get_id,        set_id, -      get_url_prefix, -      set_url_prefix, +      get_query_url, +      set_query_url,        get_username,        set_username,        get_campaigns,        get_invasions,        get_events,        set_battles, -      has_active_battles +      has_active_battles, +      decoder, +      encode, +      default     )  -- Elm -------------------------------------------------------------------------  import Json.Decode  import Json.Decode.Pipeline +import Json.Encode  -- Extension -------------------------------------------------------------------  import Struct.BattleSummary @@ -28,10 +30,9 @@ import Struct.BattleSummary  --------------------------------------------------------------------------------  type alias Type =     { -      ix : Int,        id : String,        name : String, -      url_prefix : String, +      query_url : String,        campaigns : (List Struct.BattleSummary.Type),        invasions : (List Struct.BattleSummary.Type),        events : (List Struct.BattleSummary.Type) @@ -44,12 +45,6 @@ type alias Type =  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- -get_ix : Type -> Int -get_ix t = t.ix - -set_ix : Int -> Type -> Type -set_ix val t = {t | ix = val} -  get_id : Type -> String  get_id t = t.id @@ -62,11 +57,11 @@ get_username t = t.name  set_username : String -> Type -> Type  set_username str t = {t | name = str} -get_url_prefix : Type -> String -get_url_prefix t = t.url_prefix +get_query_url : Type -> String +get_query_url t = t.query_url -set_url_prefix : String -> Type -> Type -set_url_prefix str t = {t | url_prefix = str} +set_query_url : String -> Type -> Type +set_query_url str t = {t | query_url = str}  get_campaigns : Type -> (List Struct.BattleSummary.Type)  get_campaigns t = t.campaigns @@ -103,3 +98,36 @@ has_active_battles t =        )        > 0     ) + +decoder : (Json.Decode.Decoder Type) +decoder = +   (Json.Decode.Pipeline.decode +      Type +      |> (Json.Decode.Pipeline.required "id" Json.Decode.string) +      |> (Json.Decode.Pipeline.required "name" Json.Decode.string) +      |> (Json.Decode.Pipeline.required "query_url" Json.Decode.string) +      |> (Json.Decode.Pipeline.hardcoded []) +      |> (Json.Decode.Pipeline.hardcoded []) +      |> (Json.Decode.Pipeline.hardcoded []) +   ) + +encode : Type -> Json.Encode.Value +encode t = +   (Json.Encode.object +      [ +         ("id", (Json.Encode.string t.id)), +         ("name", (Json.Encode.string t.name)), +         ("query_url", (Json.Encode.string t.query_url)) +      ] +   ) + +default : Type +default = +   { +      id = "0", +      name = "Username", +      query_url = "http://127.0.0.1/", +      campaigns = [], +      invasions = [], +      events = [] +   } diff --git a/src/Struct/ServerReply.elm b/src/Struct/ServerReply.elm index 65fc063..f0530d8 100644 --- a/src/Struct/ServerReply.elm +++ b/src/Struct/ServerReply.elm @@ -2,8 +2,8 @@ module Struct.ServerReply exposing (Type(..))  -- Elm ------------------------------------------------------------------------- --- Main Menu ------------------------------------------------------------------- -import Struct.Player +-- ------------------------------------------------------------------- +import Struct.BattleSummary  --------------------------------------------------------------------------------  -- TYPES ----------------------------------------------------------------------- @@ -11,7 +11,14 @@ import Struct.Player  type Type =     Okay ---   | SetBattles (List, List, List) +   | SetID String +   | SetUsername String +   | SetBattles +      ( +         (List Struct.BattleSummary.Type), +         (List Struct.BattleSummary.Type), +         (List Struct.BattleSummary.Type) +      )  --------------------------------------------------------------------------------  -- LOCAL ----------------------------------------------------------------------- | 


