From 87fd9b3f1c9ad877bd487ddd3375377ae965e75a Mon Sep 17 00:00:00 2001 From: nsensfel Date: Thu, 2 Nov 2017 16:38:19 +0100 Subject: I'll soon have to start coding stuff server-side. --- src/battlemap/src/Error.elm | 2 ++ src/battlemap/src/Model/HandleServerReply.elm | 23 +++++++++++++++++++++++ src/battlemap/src/Update.elm | 8 ++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 src/battlemap/src/Model/HandleServerReply.elm (limited to 'src/battlemap') diff --git a/src/battlemap/src/Error.elm b/src/battlemap/src/Error.elm index 9f20eec..206088e 100644 --- a/src/battlemap/src/Error.elm +++ b/src/battlemap/src/Error.elm @@ -4,6 +4,7 @@ type Mode = IllegalAction | Programming | Unimplemented + | Networking type alias Type = { @@ -25,6 +26,7 @@ to_string e = IllegalAction -> "Request discarded: " Programming -> "Error in the program (please report): " Unimplemented -> "Update discarded due to unimplemented feature: " + Networking -> "Error while conversing with the server: " ) ++ e.message ) diff --git a/src/battlemap/src/Model/HandleServerReply.elm b/src/battlemap/src/Model/HandleServerReply.elm new file mode 100644 index 0000000..4f84821 --- /dev/null +++ b/src/battlemap/src/Model/HandleServerReply.elm @@ -0,0 +1,23 @@ +module Model.HandleServerReply exposing (apply_to) + +-- Battlemap ------------------------------------------------------------------- +import Model +import Error +import Event + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +apply_to : Model.Type -> String -> (Model.Type, (Cmd Event.Type)) +apply_to model serialized_commands = + ( + (Model.invalidate + model + (Error.new Error.Unimplemented "Received reply from server.") + ), + Cmd.none + ) diff --git a/src/battlemap/src/Update.elm b/src/battlemap/src/Update.elm index a171aa6..f411659 100644 --- a/src/battlemap/src/Update.elm +++ b/src/battlemap/src/Update.elm @@ -11,6 +11,7 @@ import Model.RequestDirection import Model.SelectTile import Model.SelectCharacter import Model.EndTurn +import Model.HandleServerReply import Send.CharacterTurn @@ -62,11 +63,14 @@ update event model = Cmd.none ) - (Event.ServerReplied _) -> + (Event.ServerReplied (Result.Err error)) -> ( (Model.invalidate model - (Error.new Error.Unimplemented "Handle server reply.") + (Error.new Error.Networking (toString error)) ), Cmd.none ) + + (Event.ServerReplied (Result.Ok commands)) -> + (Model.HandleServerReply.apply_to model commands) -- cgit v1.2.3-70-g09d2