Safe Haskell | None |
---|---|
Language | Haskell2010 |
A simple http client to request OAuth2 tokens and several utils.
- fetchAccessToken :: Manager -> OAuth2 -> ExchangeToken -> IO (OAuth2Result Errors OAuth2Token)
- fetchRefreshToken :: Manager -> OAuth2 -> RefreshToken -> IO (OAuth2Result Errors OAuth2Token)
- doJSONPostRequest :: FromJSON err => FromJSON a => Manager -> OAuth2 -> URI -> PostBody -> IO (OAuth2Result err a)
- doFlexiblePostRequest :: FromJSON err => FromJSON a => Manager -> OAuth2 -> URI -> PostBody -> IO (OAuth2Result err a)
- doSimplePostRequest :: FromJSON err => Manager -> OAuth2 -> URI -> PostBody -> IO (OAuth2Result err ByteString)
- authGetJSON :: FromJSON err => FromJSON a => Manager -> AccessToken -> URI -> IO (OAuth2Result err a)
- authGetBS :: FromJSON err => Manager -> AccessToken -> URI -> IO (OAuth2Result err ByteString)
- authGetBS' :: FromJSON err => Manager -> AccessToken -> URI -> IO (OAuth2Result err ByteString)
- authPostJSON :: FromJSON err => FromJSON a => Manager -> AccessToken -> URI -> PostBody -> IO (OAuth2Result err a)
- authPostBS :: FromJSON err => Manager -> AccessToken -> URI -> PostBody -> IO (OAuth2Result err ByteString)
- authPostBS' :: FromJSON err => Manager -> AccessToken -> URI -> PostBody -> IO (OAuth2Result err ByteString)
- authRequest :: FromJSON err => Request -> (Request -> Request) -> Manager -> IO (OAuth2Result err ByteString)
- handleResponse :: FromJSON err => Response ByteString -> OAuth2Result err ByteString
- parseResponseJSON :: FromJSON err => FromJSON a => OAuth2Result err ByteString -> OAuth2Result err a
- parseResponseFlexible :: FromJSON err => FromJSON a => OAuth2Result err ByteString -> OAuth2Result err a
- updateRequestHeaders :: Maybe AccessToken -> Request -> Request
- setMethod :: StdMethod -> Request -> Request
Token management
:: Manager | HTTP connection manager |
-> OAuth2 | OAuth Data |
-> ExchangeToken | OAuth 2 Tokens |
-> IO (OAuth2Result Errors OAuth2Token) | Access Token |
Request (via POST method) "OAuth2 Token".
:: Manager | HTTP connection manager. |
-> OAuth2 | OAuth context |
-> RefreshToken | refresh token gained after authorization |
-> IO (OAuth2Result Errors OAuth2Token) |
Request a new AccessToken with the Refresh Token. TODO: seems more approporate to rename to refreshAccessToken
:: FromJSON err | |
=> FromJSON a | |
=> Manager | HTTP connection manager. |
-> OAuth2 | OAuth options |
-> URI | The URL |
-> PostBody | request body |
-> IO (OAuth2Result err a) | Response as JSON |
Conduct post request and return response as JSON.
doFlexiblePostRequest Source #
:: FromJSON err | |
=> FromJSON a | |
=> Manager | HTTP connection manager. |
-> OAuth2 | OAuth options |
-> URI | The URL |
-> PostBody | request body |
-> IO (OAuth2Result err a) | Response as ByteString |
Conduct post request and return response as JSON or Query String.
:: FromJSON err | |
=> Manager | HTTP connection manager. |
-> OAuth2 | OAuth options |
-> URI | URL |
-> PostBody | Request body. |
-> IO (OAuth2Result err ByteString) | Response as ByteString |
Conduct post request.
AUTH requests
:: FromJSON err | |
=> FromJSON a | |
=> Manager | HTTP connection manager. |
-> AccessToken | |
-> URI | |
-> IO (OAuth2Result err a) | Response as JSON |
Conduct an authorized GET request and return response as JSON.
:: FromJSON err | |
=> Manager | HTTP connection manager. |
-> AccessToken | |
-> URI | |
-> IO (OAuth2Result err ByteString) | Response as ByteString |
Conduct an authorized GET request.
:: FromJSON err | |
=> Manager | HTTP connection manager. |
-> AccessToken | |
-> URI | |
-> IO (OAuth2Result err ByteString) | Response as ByteString |
same to authGetBS
but set access token to query parameter rather than header
:: FromJSON err | |
=> FromJSON a | |
=> Manager | HTTP connection manager. |
-> AccessToken | |
-> URI | |
-> PostBody | |
-> IO (OAuth2Result err a) | Response as JSON |
Conduct POST request and return response as JSON.
:: FromJSON err | |
=> Manager | HTTP connection manager. |
-> AccessToken | |
-> URI | |
-> PostBody | |
-> IO (OAuth2Result err ByteString) | Response as ByteString |
Conduct POST request.
:: FromJSON err | |
=> Manager | HTTP connection manager. |
-> AccessToken | |
-> URI | |
-> PostBody | |
-> IO (OAuth2Result err ByteString) | Response as ByteString |
Conduct POST request with access token in the request body rather header
:: FromJSON err | |
=> Request | Request to perform |
-> (Request -> Request) | Modify request before sending |
-> Manager | HTTP connection manager. |
-> IO (OAuth2Result err ByteString) |
Send an HTTP request including the Authorization header with the specified access token.
Utilities
handleResponse :: FromJSON err => Response ByteString -> OAuth2Result err ByteString Source #
Parses a Response
to to OAuth2Result
parseResponseJSON :: FromJSON err => FromJSON a => OAuth2Result err ByteString -> OAuth2Result err a Source #
Parses a OAuth2Result BSL.ByteString
into FromJSON a => a
parseResponseFlexible :: FromJSON err => FromJSON a => OAuth2Result err ByteString -> OAuth2Result err a Source #
Try parseResponseJSON
and parseResponseString
updateRequestHeaders :: Maybe AccessToken -> Request -> Request Source #
Set several header values:
+ userAgennt : hoauth2
+ accept : `application/json`
+ authorization : Bearer
xxxxx
if AccessToken
provided.