- -- Pull out the response code as a CurlCode.
- let code = respCurlCode resp
-
- case code of
- CurlOK -> return $ Just (respBody resp)
- error_code -> do
- hPutStrLn stderr ("HTTP Error: " ++ (show error_code))
- -- If an error occurred, we want to dump as much information as
- -- possible. If this becomes a problem, we can use respGetInfo to
- -- query the response object for more information
- return Nothing
+-- | Retrieve a URL, or crash. The request is signed using all of the
+-- OAuth junk contained in the configuration.
+--
+http_get :: Cfg -> String -> IO B.ByteString
+http_get cfg url = do
+ manager <- newManager tlsManagerSettings
+ request <- parseUrl url
+ signed_request <- signOAuth oauth credential request
+ response <- httpLbs signed_request manager
+ return $ responseBody response
+
+ where
+ consumer_key' = BC.pack (consumer_key cfg)
+ consumer_secret' = BC.pack (consumer_secret cfg)
+ access_token' = BC.pack (access_token cfg)
+ access_secret' = BC.pack (access_secret cfg)
+
+ oauth :: OAuth
+ oauth = newOAuth {
+ oauthConsumerKey = consumer_key',
+ oauthConsumerSecret = consumer_secret' }
+
+ credential :: Credential
+ credential = newCredential access_token' access_secret'