Loading test.elm +17 −15 Original line number Original line Diff line number Diff line Loading @@ -22,7 +22,13 @@ main = type alias Model = type alias Model = { message : Maybe String { info : Maybe InfoMessage } type alias InfoMessage = { message : String , time : Time.Time } } Loading @@ -37,7 +43,7 @@ init = doRequest : Cmd Msg doRequest : Cmd Msg doRequest = doRequest = Task.map2 buildTheUrl fetchToken Time.now Task.map2 (,) fetchToken Time.now |> Task.andThen secondRequest |> Task.andThen secondRequest |> Task.attempt HandleResult |> Task.attempt HandleResult Loading @@ -49,15 +55,11 @@ fetchToken = |> Http.toTask |> Http.toTask buildTheUrl : String -> Time.Time -> String secondRequest : ( String, Time.Time ) -> Task.Task Http.Error InfoMessage buildTheUrl token time = secondRequest ( token, time ) = token ++ ".json?timestamp=" ++ (toString time) secondRequest : String -> Task.Task Http.Error String secondRequest url = Decode.field "message" Decode.string Decode.field "message" Decode.string |> Http.get url |> Decode.map (\x -> InfoMessage x time) |> Http.get (token ++ ".json") |> Http.toTask |> Http.toTask Loading @@ -66,7 +68,7 @@ secondRequest url = type Msg type Msg = HandleResult (Result Http.Error String) = HandleResult (Result Http.Error InfoMessage) update : Msg -> Model -> ( Model, Cmd Msg ) update : Msg -> Model -> ( Model, Cmd Msg ) Loading @@ -76,7 +78,7 @@ update msg model = ( model, Cmd.none ) ( model, Cmd.none ) HandleResult (Ok x) -> HandleResult (Ok x) -> ( { model | message = Just x }, Cmd.none ) ( { model | info = Just x }, Cmd.none ) Loading @@ -88,11 +90,11 @@ view model = div [] div [] [ span [] [ span [] [ text <| [ text <| case model.message of case model.info of Nothing -> Nothing -> "no result yet" "no result yet" Just x -> Just { message, time } -> x message ++ " at " ++ (toString time) ] ] ] ] Loading
test.elm +17 −15 Original line number Original line Diff line number Diff line Loading @@ -22,7 +22,13 @@ main = type alias Model = type alias Model = { message : Maybe String { info : Maybe InfoMessage } type alias InfoMessage = { message : String , time : Time.Time } } Loading @@ -37,7 +43,7 @@ init = doRequest : Cmd Msg doRequest : Cmd Msg doRequest = doRequest = Task.map2 buildTheUrl fetchToken Time.now Task.map2 (,) fetchToken Time.now |> Task.andThen secondRequest |> Task.andThen secondRequest |> Task.attempt HandleResult |> Task.attempt HandleResult Loading @@ -49,15 +55,11 @@ fetchToken = |> Http.toTask |> Http.toTask buildTheUrl : String -> Time.Time -> String secondRequest : ( String, Time.Time ) -> Task.Task Http.Error InfoMessage buildTheUrl token time = secondRequest ( token, time ) = token ++ ".json?timestamp=" ++ (toString time) secondRequest : String -> Task.Task Http.Error String secondRequest url = Decode.field "message" Decode.string Decode.field "message" Decode.string |> Http.get url |> Decode.map (\x -> InfoMessage x time) |> Http.get (token ++ ".json") |> Http.toTask |> Http.toTask Loading @@ -66,7 +68,7 @@ secondRequest url = type Msg type Msg = HandleResult (Result Http.Error String) = HandleResult (Result Http.Error InfoMessage) update : Msg -> Model -> ( Model, Cmd Msg ) update : Msg -> Model -> ( Model, Cmd Msg ) Loading @@ -76,7 +78,7 @@ update msg model = ( model, Cmd.none ) ( model, Cmd.none ) HandleResult (Ok x) -> HandleResult (Ok x) -> ( { model | message = Just x }, Cmd.none ) ( { model | info = Just x }, Cmd.none ) Loading @@ -88,11 +90,11 @@ view model = div [] div [] [ span [] [ span [] [ text <| [ text <| case model.message of case model.info of Nothing -> Nothing -> "no result yet" "no result yet" Just x -> Just { message, time } -> x message ++ " at " ++ (toString time) ] ] ] ]