Loading .gitignore 0 → 100644 +1 −0 Original line number Diff line number Diff line elm-stuff 5a0c95597156f.json 0 → 100644 +4 −0 Original line number Diff line number Diff line { "message": "hello world" } No newline at end of file elm-package.json 0 → 100644 +16 −0 Original line number Diff line number Diff line { "version": "1.0.0", "summary": "helpful summary of your project, less than 80 characters", "repository": "https://github.com/user/project.git", "license": "BSD3", "source-directories": [ "." ], "exposed-modules": [], "dependencies": { "elm-lang/core": "5.1.1 <= v < 6.0.0", "elm-lang/html": "2.0.0 <= v < 3.0.0", "elm-lang/http": "1.0.0 <= v < 2.0.0" }, "elm-version": "0.18.0 <= v < 0.19.0" } first.json 0 → 100644 +4 −0 Original line number Diff line number Diff line { "token": "5a0c95597156f" } No newline at end of file test.elm 0 → 100644 +83 −0 Original line number Diff line number Diff line module Main exposing (main) import Html exposing (..) import Http import Json.Decode as Decode import Task main : Program Never Model Msg main = Html.program { init = init , view = view , update = update , subscriptions = (\_ -> Sub.none) } -- MODEL type alias Model = { message : Maybe String } init : ( Model, Cmd Msg ) init = ( Model Nothing, doRequest ) doRequest : Cmd Msg doRequest = Decode.field "token" Decode.string |> Http.get "first.json" |> Http.toTask |> Task.andThen secondRequest |> Task.attempt HandleResult secondRequest : String -> Task.Task Http.Error String secondRequest token = Decode.field "message" Decode.string |> Http.get (token ++ ".json") |> Http.toTask -- UPDATE type Msg = HandleResult (Result Http.Error String) update : Msg -> Model -> ( Model, Cmd Msg ) update msg model = case msg of HandleResult (Err _) -> ( model, Cmd.none ) HandleResult (Ok x) -> ( { model | message = Just x }, Cmd.none ) -- VIEW view : Model -> Html Msg view model = div [] [ span [] [ text <| case model.message of Nothing -> "no result yet" Just x -> x ] ] Loading
5a0c95597156f.json 0 → 100644 +4 −0 Original line number Diff line number Diff line { "message": "hello world" } No newline at end of file
elm-package.json 0 → 100644 +16 −0 Original line number Diff line number Diff line { "version": "1.0.0", "summary": "helpful summary of your project, less than 80 characters", "repository": "https://github.com/user/project.git", "license": "BSD3", "source-directories": [ "." ], "exposed-modules": [], "dependencies": { "elm-lang/core": "5.1.1 <= v < 6.0.0", "elm-lang/html": "2.0.0 <= v < 3.0.0", "elm-lang/http": "1.0.0 <= v < 2.0.0" }, "elm-version": "0.18.0 <= v < 0.19.0" }
first.json 0 → 100644 +4 −0 Original line number Diff line number Diff line { "token": "5a0c95597156f" } No newline at end of file
test.elm 0 → 100644 +83 −0 Original line number Diff line number Diff line module Main exposing (main) import Html exposing (..) import Http import Json.Decode as Decode import Task main : Program Never Model Msg main = Html.program { init = init , view = view , update = update , subscriptions = (\_ -> Sub.none) } -- MODEL type alias Model = { message : Maybe String } init : ( Model, Cmd Msg ) init = ( Model Nothing, doRequest ) doRequest : Cmd Msg doRequest = Decode.field "token" Decode.string |> Http.get "first.json" |> Http.toTask |> Task.andThen secondRequest |> Task.attempt HandleResult secondRequest : String -> Task.Task Http.Error String secondRequest token = Decode.field "message" Decode.string |> Http.get (token ++ ".json") |> Http.toTask -- UPDATE type Msg = HandleResult (Result Http.Error String) update : Msg -> Model -> ( Model, Cmd Msg ) update msg model = case msg of HandleResult (Err _) -> ( model, Cmd.none ) HandleResult (Ok x) -> ( { model | message = Just x }, Cmd.none ) -- VIEW view : Model -> Html Msg view model = div [] [ span [] [ text <| case model.message of Nothing -> "no result yet" Just x -> x ] ]