aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/Main.elm
diff options
context:
space:
mode:
authorNoah Loomans <noahloomans@gmail.com>2017-09-13 21:48:04 +0200
committerNoah Loomans <noahloomans@gmail.com>2017-09-13 21:48:04 +0200
commit5348b220c8ec071eee01578f0ea525e28d3a5c3f (patch)
tree29725415cc884227081c44b832d3daff46c9068d /src/client/elm/Main.elm
parent83034116b02497576d97bffc9e91a5476cc60d41 (diff)
Mode DecodeFlags and Model to seperate files
Diffstat (limited to 'src/client/elm/Main.elm')
-rw-r--r--src/client/elm/Main.elm73
1 files changed, 2 insertions, 71 deletions
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 )