Created
March 26, 2016 15:57
-
-
Save ohanhi/c9175609dfd51e89fdda to your computer and use it in GitHub Desktop.
Revisions
-
ohanhi created this gist
Mar 26, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,46 @@ module JsonApi where import Task exposing (Task) import Json.Decode exposing (Decoder) import Json.Encode exposing (Value) import Http.Extra as HttpExtra exposing (..) import Task exposing (Task) import Json.Decode exposing (Decoder) import Json.Encode exposing (Value) import Http.Extra as HttpExtra exposing (..) apiCall : (String -> RequestBuilder) -> Decoder success -> Decoder error -> String -> Value -> Task (Error error) (Response success) apiCall useMethod successDecoder errorDecoder url body = url |> useMethod |> withHeader "content-type" "application/json" |> withJsonBody body |> send (jsonReader successDecoder) (jsonReader errorDecoder) get : Decoder success -> Decoder error -> String -> Value -> Task (Error error) (Response success) get = apiCall HttpExtra.get post : Decoder success -> Decoder error -> String -> Value -> Task (Error error) (Response success) post = apiCall HttpExtra.post put : Decoder success -> Decoder error -> String -> Value -> Task (Error error) (Response success) put = apiCall HttpExtra.put patch : Decoder success -> Decoder error -> String -> Value -> Task (Error error) (Response success) patch = apiCall HttpExtra.patch delete : Decoder success -> Decoder error -> String -> Value -> Task (Error error) (Response success) delete = apiCall HttpExtra.delete