on master help sign in
Add Http.get and switch archive fetching to use GET method
2469006Evan Czaplicki
builder/src/Http.hs+20−9
@@ -3,7 +3,8 @@ module Http
3 ( Manager
3 ( Manager
4 , getManager
4 , getManager
5 , toUrl
5 , toUrl
6− -- post
6+ -- fetch
7+ , get
7 , post
8 , post
8 , Header
9 , Header
9 , accept
10 , accept
@@ -11,7 +12,7 @@ module Http
11 -- archives
12 -- archives
12 , Sha
13 , Sha
13 , shaToChars
14 , shaToChars
14− , fetchArchive
15+ , getArchive
15 -- upload
16 -- upload
16 , upload
17 , upload
17 , filePart
18 , filePart
@@ -32,7 +33,7 @@ import Network.HTTP (urlEncodeVars)
32import Network.HTTP.Client
33import Network.HTTP.Client
33import Network.HTTP.Client.TLS (tlsManagerSettings)
34import Network.HTTP.Client.TLS (tlsManagerSettings)
34import Network.HTTP.Types.Header (Header, hAccept, hAcceptEncoding, hUserAgent)
35import Network.HTTP.Types.Header (Header, hAccept, hAcceptEncoding, hUserAgent)
35−import Network.HTTP.Types.Method (methodPost)
36+import Network.HTTP.Types.Method (Method, methodGet, methodPost)
36import qualified Network.HTTP.Client.MultipartFormData as Multi
37import qualified Network.HTTP.Client.MultipartFormData as Multi
37
38
38import qualified Elm.Version as V
39import qualified Elm.Version as V
@@ -59,17 +60,27 @@ toUrl url params =
59
60
60
61
61
62
62−-- POST
63+-- FETCH
64+
65+
66+get :: Manager -> String -> [Header] -> (Error -> e) -> (BS.ByteString -> IO (Either e a)) -> IO (Either e a)
67+get =
68+ fetch methodGet
63
69
64
70
65post :: Manager -> String -> [Header] -> (Error -> e) -> (BS.ByteString -> IO (Either e a)) -> IO (Either e a)
71post :: Manager -> String -> [Header] -> (Error -> e) -> (BS.ByteString -> IO (Either e a)) -> IO (Either e a)
72+post =
73+ fetch methodPost
74+
75+
76+fetch :: Method -> Manager -> String -> [Header] -> (Error -> e) -> (BS.ByteString -> IO (Either e a)) -> IO (Either e a)
66−post manager url headers onError onSuccess =
77+fetch methodVerb manager url headers onError onSuccess =
67 handle (handleSomeException url onError) $
78 handle (handleSomeException url onError) $
68 handle (handleHttpException url onError) $
79 handle (handleHttpException url onError) $
69 do req0 <- parseUrlThrow url
80 do req0 <- parseUrlThrow url
70 let req1 =
81 let req1 =
71 req0
82 req0
72− { method = methodPost
83+ { method = methodVerb
73 , requestHeaders = addDefaultHeaders headers
84 , requestHeaders = addDefaultHeaders headers
74 }
85 }
75 withResponse req1 manager $ \response ->
86 withResponse req1 manager $ \response ->
@@ -134,20 +145,20 @@ shaToChars =
134-- FETCH ARCHIVE
145-- FETCH ARCHIVE
135
146
136
147
137−fetchArchive
148+getArchive
138 :: Manager
149 :: Manager
139 -> String
150 -> String
140 -> (Error -> e)
151 -> (Error -> e)
141 -> e
152 -> e
142 -> ((Sha, Zip.Archive) -> IO (Either e a))
153 -> ((Sha, Zip.Archive) -> IO (Either e a))
143 -> IO (Either e a)
154 -> IO (Either e a)
144−fetchArchive manager url onError err onSuccess =
155+getArchive manager url onError err onSuccess =
145 handle (handleSomeException url onError) $
156 handle (handleSomeException url onError) $
146 handle (handleHttpException url onError) $
157 handle (handleHttpException url onError) $
147 do req0 <- parseUrlThrow url
158 do req0 <- parseUrlThrow url
148 let req1 =
159 let req1 =
149 req0
160 req0
150− { method = methodPost
161+ { method = methodGet
151 , requestHeaders = addDefaultHeaders []
162 , requestHeaders = addDefaultHeaders []
152 }
163 }
153 withResponse req1 manager $ \response ->
164 withResponse req1 manager $ \response ->