@@ -1,6 +1,14 @@
1−-- A library for asynchronous HTTP requests (AJAX). See the
1+{-| A library for asynchronous HTTP requests (AJAX). See the
2−-- [WebSocket](http://elm-lang.org/docs/WebSocket.elm) library if
2+[WebSocket](http://elm-lang.org/docs/WebSocket.elm) library if
3−-- you have very strict latency requirements.
3+you have very strict latency requirements.
6+@docs Request, Response
9+@docs request, get, post, send, sendGet
5module Http where
13module Http where
@@ -8,8 +16,9 @@ import open Basics
8import open Signal
16import open Signal
9import Native.Http
17import Native.Http
11−-- The datatype for responses. Success contains only the returned message.
19+{-| The datatype for responses. Success contains only the returned message.
12−-- Failures contain both an error code and an error message.
20+Failures contain both an error code and an error message.
13data Response a = Success a | Waiting | Failure Int String
22data Response a = Success a | Waiting | Failure Int String
15type Request a = {
24type Request a = {
@@ -19,27 +28,28 @@ type Request a = {
19 headers : [(String,String)]
28 headers : [(String,String)]
22−-- Create a customized request. Arguments are request type (get, post, put,
31+{-| Create a customized request. Arguments are request type (get, post, put,
23−-- delete, etc.), target url, data, and a list of additional headers.
32+delete, etc.), target url, data, and a list of additional headers.
24request : String -> String -> String -> [(String,String)] -> Request String
34request : String -> String -> String -> [(String,String)] -> Request String
25request = Request
35request = Request
27−-- Create a GET request to the given url.
37+{-| Create a GET request to the given url. -}
28get : String -> Request String
38get : String -> Request String
29get url = Request "GET" url "" []
39get url = Request "GET" url "" []
31−-- Create a POST request to the given url, carrying the given data.
41+{-| Create a POST request to the given url, carrying the given data. -}
32post : String -> String -> Request String
42post : String -> String -> Request String
33post url body = Request "POST" url body []
43post url body = Request "POST" url body []
36−-- Performs an HTTP request with the given requests. Produces a signal
45+{-| Performs an HTTP request with the given requests. Produces a signal
37−-- that carries the responses.
46+that carries the responses.
38send : Signal (Request a) -> Signal (Response String)
48send : Signal (Request a) -> Signal (Response String)
39send = Native.Http.send
49send = Native.Http.send
41−-- Performs an HTTP GET request with the given urls. Produces a signal
51+{-| Performs an HTTP GET request with the given urls. Produces a signal
42−-- that carries the responses.
52+that carries the responses.
43sendGet : Signal String -> Signal (Response String)
54sendGet : Signal String -> Signal (Response String)
44sendGet reqs = send (lift get reqs)
55sendGet reqs = send (lift get reqs)