11module Engage.Http exposing
22 ( Config , Error (..)
33 , get, post, patch, put, delete
4- , requestJson, requestString
4+ , requestJson, requestString, requestAnything
55 , getErrorMessage, urlWithQueryString
66 , configDecoder, serverErrorDecoder, multipleServerErrorDecoder, nullDecoder
77 )
@@ -21,7 +21,7 @@ module Engage.Http exposing
2121
2222# Raw requests
2323
24- @docs requestJson, requestString
24+ @docs requestJson, requestString, requestAnything
2525
2626
2727# Helper functions
@@ -243,6 +243,21 @@ requestJson method headers url requestBody toMsg decoder =
243243 requestString method headers url requestBody toMsg toResult
244244
245245
246+ {- | Raw request that does not expect a response.
247+
248+ This version can use any method and accepts any body (e.g. `Http.fileBody`, `Http.bytesBody`, or `Http.emptyBody`).
249+
250+ -}
251+ requestAnything : String -> List Http .Header -> String -> Http .Body -> (RemoteData Error () -> msg ) -> Cmd msg
252+ requestAnything method headers url requestBody toMsg =
253+ let
254+ toResult : Http . Metadata -> String -> Result Error ()
255+ toResult _ _ =
256+ Ok ()
257+ in
258+ requestString method headers url requestBody toMsg toResult
259+
260+
246261{- | Raw request that expects a `String` response (but not necessarily a valid JSON `String`).
247262
248263This version can use any method and accepts any body (e.g. `Http.fileBody`, `Http.bytesBody`, or `Http.emptyBody`).
@@ -382,6 +397,7 @@ getErrorMessage args error =
382397
383398 BadStatus statusCode body ->
384399 let
400+ -- TODO: Differentiate message based on status code
385401 defaultMessage : String
386402 defaultMessage =
387403 Localization . localizeStringWithDefault " There was an error processing your request" " Server.Error" args
0 commit comments