Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
module Main exposing (..)
import Html
import Html.App
import Html.Events
import Http
import Json.Decode as Json exposing ((:=))
import Task
url : String
url =
"http://localhost:8000/"
type alias Model =
{ content : String
}
init : ( Model, Cmd Msg )
init =
( Model "", Cmd.none )
type Msg
= Retrieve
| RetrieveSuccess String
| RetrieveFail Http.Error
update : Msg -> Model -> ( Model, Cmd Msg )
update message model =
case message of
Retrieve ->
( model, getData url )
RetrieveSuccess content ->
( { model | content = content }, Cmd.none )
RetrieveFail error ->
( { model | content = "error" }, Cmd.none )
getData : String -> Cmd Msg
getData url =
Task.perform RetrieveFail RetrieveSuccess (Http.getString url)
view : Model -> Html.Html Msg
view model =
Html.div
[]
[ Html.text ("result: " ++ model.content)
, Html.br [] []
, Html.button [ Html.Events.onClick Retrieve ] [ Html.text "Request data" ]
]
main =
Html.App.program
{ init = init
, view = view
, update = update
, subscriptions = \_ -> Sub.none
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment