blob: dd3870a71025eddee6adab85029f9e580e3113c0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
module Utils.Http exposing
( jsonRequest
, request
, errorKey
)
import Http exposing (..)
import Task exposing (..)
import Json.Decode as Decode exposing (Decoder, Value)
import Json.Encode as Encode
jsonRequest : String -> String -> Expect a -> (Result Error a -> msg) -> Encode.Value -> Cmd msg
jsonRequest method url expect handleResult value =
requestWithBody method url (jsonBody value) expect handleResult
request : String -> String -> Expect a -> (Result Error a -> msg) -> Cmd msg
request method url = requestWithBody method url emptyBody
requestWithBody : String -> String -> Body -> Expect a -> (Result Error a -> msg) -> Cmd msg
requestWithBody method url body expect handleResult =
let req = Http.request
{ method = method
, headers = []
, url = url
, body = body
, expect = expect
, timeout = Nothing
, withCredentials = False
}
in send handleResult req
errorKey : Error -> String
errorKey error =
case error of
BadUrl _ -> "BadUrl"
Timeout -> "Timeout"
NetworkError -> "NetworkError"
BadPayload _ _ -> "BadPayload"
BadStatus response -> response.body
|