aboutsummaryrefslogtreecommitdiff
path: root/src/client/Utils/Http.elm
diff options
context:
space:
mode:
authorJoris2017-03-26 21:10:42 +0200
committerJoris2017-03-26 21:10:42 +0200
commit1e47a7754ca38bd1a6c74765d8378caf68ce4619 (patch)
treed0d9238479dc2529a1b558bbbcde346e7e8c2935 /src/client/Utils/Http.elm
parentc0ac16a713c4e53cf6af8e72a6d5f6b8ac5d6456 (diff)
downloadbudget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.tar.gz
budget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.tar.bz2
budget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.zip
Separate client and server watch
Diffstat (limited to 'src/client/Utils/Http.elm')
-rw-r--r--src/client/Utils/Http.elm39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/client/Utils/Http.elm b/src/client/Utils/Http.elm
new file mode 100644
index 0000000..dd3870a
--- /dev/null
+++ b/src/client/Utils/Http.elm
@@ -0,0 +1,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