An experimental alternative for elm/http.
Warning: Not fully tested yet
put patch and delete.Cmd to Task gradually (and vice versa).Http.Error to custom error gradually.Create a task that works just like get.
getUserSimple : String -> Task Http.Error User
getUserSimple userName =
Req.get ("https://api.github.com/users/" ++ userName)
|> Req.stringTask (Req.simplyResolveJson userDecoder)Use Req.Error instead of Http.Error to get more information.
type Error a
= BadUrl String
| Timeout
| NetworkError
| BadStatus Http.Metadata a
| BadBody Http.Metadata String
getRepo : String -> String -> Task (Req.Error ErrorInfo) Repo
getRepo userName repoName =
Req.get ("https://api.github.com/repos/" ++ userName ++ "/" ++ repoName)
|> Req.stringTask
(Req.resolveJson
{ decoder = repoDecoder, errorDecoder = errorDecoder }
)Use Req.ReqWithError to get full information of the request.
type alias ReqWithError a =
{ request : Req
, error : Error a
}
getRepo : String -> String -> Task (Req.ReqWithError ErrorInfo) Repo
getRepo userName repoName =
Req.get ("https://api.github.com/repos/" ++ userName ++ "/" ++ repoName)
|> Req.stringTask
(Req.resolveJsonWithReq
{ decoder = repoDecoder, errorDecoder = errorDecoder }
)