summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Struct/Player.elm')
-rw-r--r--src/Struct/Player.elm62
1 files changed, 45 insertions, 17 deletions
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 = []
+ }