aboutsummaryrefslogtreecommitdiff
path: root/client/src/Messages.elm
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/Messages.elm')
-rw-r--r--client/src/Messages.elm15
1 files changed, 11 insertions, 4 deletions
diff --git a/client/src/Messages.elm b/client/src/Messages.elm
index 11c34ca..3979587 100644
--- a/client/src/Messages.elm
+++ b/client/src/Messages.elm
@@ -78,15 +78,22 @@ jsonEncOpponent val =
type TableView =
Proposing BlackCard (List WhiteCard)
+ | Voting BlackCard (List WhiteCard) (List (List WhiteCard)) (Maybe Int)
jsonDecTableView : Json.Decode.Decoder ( TableView )
jsonDecTableView =
- Json.Decode.lazy (\_ -> Json.Decode.map2 Proposing (Json.Decode.index 0 (jsonDecBlackCard)) (Json.Decode.index 1 (Json.Decode.list (jsonDecWhiteCard))))
-
+ let jsonDecDictTableView = Dict.fromList
+ [ ("Proposing", Json.Decode.lazy (\_ -> Json.Decode.map2 Proposing (Json.Decode.index 0 (jsonDecBlackCard)) (Json.Decode.index 1 (Json.Decode.list (jsonDecWhiteCard)))))
+ , ("Voting", Json.Decode.lazy (\_ -> Json.Decode.map4 Voting (Json.Decode.index 0 (jsonDecBlackCard)) (Json.Decode.index 1 (Json.Decode.list (jsonDecWhiteCard))) (Json.Decode.index 2 (Json.Decode.list (Json.Decode.list (jsonDecWhiteCard)))) (Json.Decode.index 3 (Json.Decode.maybe (Json.Decode.int)))))
+ ]
+ in decodeSumObjectWithSingleField "TableView" jsonDecDictTableView
jsonEncTableView : TableView -> Value
-jsonEncTableView (Proposing v1 v2) =
- Json.Encode.list identity [jsonEncBlackCard v1, (Json.Encode.list jsonEncWhiteCard) v2]
+jsonEncTableView val =
+ let keyval v = case v of
+ Proposing v1 v2 -> ("Proposing", encodeValue (Json.Encode.list identity [jsonEncBlackCard v1, (Json.Encode.list jsonEncWhiteCard) v2]))
+ Voting v1 v2 v3 v4 -> ("Voting", encodeValue (Json.Encode.list identity [jsonEncBlackCard v1, (Json.Encode.list jsonEncWhiteCard) v2, (Json.Encode.list (Json.Encode.list jsonEncWhiteCard)) v3, (maybeEncode (Json.Encode.int)) v4]))
+ in encodeSumObjectWithSingleField keyval val