From 5348b220c8ec071eee01578f0ea525e28d3a5c3f Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Wed, 13 Sep 2017 21:48:04 +0200 Subject: Mode DecodeFlags and Model to seperate files --- src/client/elm/Main.elm | 73 ++----------------------------------------------- 1 file changed, 2 insertions(+), 71 deletions(-) (limited to 'src/client/elm/Main.elm') diff --git a/src/client/elm/Main.elm b/src/client/elm/Main.elm index de1f1fe..e59889d 100644 --- a/src/client/elm/Main.elm +++ b/src/client/elm/Main.elm @@ -1,9 +1,8 @@ module Main exposing (..) import Html exposing (..) -import Json.Decode exposing (Decoder, andThen, fail, string, succeed) -import Json.Decode.Pipeline exposing (decode, required) - +import Model exposing (Model) +import DecodeFlags exposing (Flags, init) main : Program Flags Model msg main = @@ -14,74 +13,6 @@ main = , subscriptions = subscriptions } - -type alias Flags = - Json.Decode.Value - - -type alias Model = - { users : List User - } - - -type alias User = - { type_ : UserType - , value : String - } - - -type UserType - = Class - | Teacher - | Room - | Student - - -init : Flags -> ( Model, Cmd msg ) -init flags = - case Json.Decode.decodeValue decodeUsers flags of - Ok user -> - ( Model user, Cmd.none ) - - Err err -> - Debug.crash err - - -decodeUsers : Decoder (List User) -decodeUsers = - Json.Decode.list decodeUser - - -decodeUser : Decoder User -decodeUser = - decode User - |> required "type" decodeUserType - |> required "value" string - - -decodeUserType : Json.Decode.Decoder UserType -decodeUserType = - string - |> andThen - (\s -> - case s of - "s" -> - succeed Student - - "c" -> - succeed Class - - "t" -> - succeed Teacher - - "r" -> - succeed Room - - _ -> - fail ("What the f*ck is " ++ s ++ "?") - ) - - update : msg -> Model -> ( Model, Cmd msg ) update msg model = ( model, Cmd.none ) -- cgit v1.1