hoauth2-0.5.0: hoauth2

Safe Haskell | None
Language | Haskell2010

Network.OAuth.OAuth2.HttpClient

Contents

- Retrieve access token
- AUTH requests
- Utilities

Description

A simple http client to request OAuth2 tokens and several utils.

Synopsis

- fetchAccessToken :: Manager -> OAuth2 -> ByteString -> IO (OAuth2Result AccessToken)
- fetchRefreshToken :: Manager -> OAuth2 -> ByteString -> IO (OAuth2Result AccessToken)
- doJSONPostRequest :: FromJSON a => Manager -> OAuth2 -> URI -> PostBody -> IO (OAuth2Result a)
- doSimplePostRequest :: Manager -> OAuth2 -> URI -> PostBody -> IO (OAuth2Result ByteString)
- authGetJSON :: FromJSON a => Manager -> AccessToken -> URI -> IO (OAuth2Result a)
- authGetBS :: Manager -> AccessToken -> URI -> IO (OAuth2Result ByteString)
- authGetBS' :: Manager -> AccessToken -> URI -> IO (OAuth2Result ByteString)
- authPostJSON :: FromJSON a => Manager -> AccessToken -> URI -> PostBody -> IO (OAuth2Result a)
- authPostBS :: Manager -> AccessToken -> URI -> PostBody -> IO (OAuth2Result ByteString)
- authRequest :: Request -> (Request -> Request) -> Manager -> IO (OAuth2Result ByteString)
- authRequest' :: Request -> (Request -> Request) -> Manager -> IO (Response ByteString)
- handleResponse :: Response ByteString -> OAuth2Result ByteString
- parseResponseJSON :: FromJSON a => OAuth2Result ByteString -> OAuth2Result a
- updateRequestHeaders :: Maybe AccessToken -> Request -> Request
- setMethod :: StdMethod -> Request -> Request

# Retrieve access token

fetchAccessToken Source

Arguments

:: Manager | HTTP connection manager
-> OAuth2 | OAuth Data
-> ByteString | Authentication code gained after authorization
-> IO (OAuth2Result AccessToken) | Access Token

Request (via POST method) "Access Token".

fetchRefreshToken Source

Arguments

:: Manager | HTTP connection manager.
-> OAuth2 | OAuth context
-> ByteString | refresh token gained after authorization
-> IO (OAuth2Result AccessToken) |

Request the "Refresh Token".

doJSONPostRequest Source

Arguments

:: FromJSON a |
=> Manager | HTTP connection manager.
-> OAuth2 | OAuth options
-> URI | The URL
-> PostBody | request body
-> IO (OAuth2Result a) | Response as ByteString

Conduct post request and return response as JSON.

doSimplePostRequest Source

Arguments

:: Manager | HTTP connection manager.
-> OAuth2 | OAuth options
-> URI | URL
-> PostBody | Request body.
-> IO (OAuth2Result ByteString) | Response as ByteString

Conduct post request.

# AUTH requests

authGetJSON Source

Arguments

:: FromJSON a |
=> Manager | HTTP connection manager.
-> AccessToken |
-> URI | Full URL
-> IO (OAuth2Result a) | Response as JSON

Conduct GET request and return response as JSON.

authGetBS Source

Arguments

:: Manager | HTTP connection manager.
-> AccessToken |
-> URI | URL
-> IO (OAuth2Result ByteString) | Response as ByteString

Conduct GET request.

authGetBS' Source

Arguments

:: Manager | HTTP connection manager.
-> AccessToken |
-> URI | URL
-> IO (OAuth2Result ByteString) | Response as ByteString

same to `authGetBS` but set access token to query parameter rather than header

authPostJSON Source

Arguments

:: FromJSON a |
=> Manager | HTTP connection manager.
-> AccessToken |
-> URI | Full URL
-> PostBody |
-> IO (OAuth2Result a) | Response as JSON

Conduct POST request and return response as JSON.

authPostBS Source

Arguments

:: Manager | HTTP connection manager.
-> AccessToken |
-> URI | URL
-> PostBody |
-> IO (OAuth2Result ByteString) | Response as ByteString

Conduct POST request.

authRequest Source

Arguments

:: Request | Request to perform
-> (Request -> Request) | Modify request before sending
-> Manager | HTTP connection manager.
-> IO (OAuth2Result ByteString) |

Sends a HTTP request including the Authorization header with the specified access token.

authRequest' Source

Arguments

:: Request | Request to perform
-> (Request -> Request) | Modify request before sending
-> Manager | HTTP connection manager.
-> IO (Response ByteString) |

# Utilities

handleResponse :: Response ByteString -> OAuth2Result ByteString Source

Parses a `Response` to to `OAuth2Result`

parseResponseJSON :: FromJSON a => OAuth2Result ByteString -> OAuth2Result a Source

Parses a `OAuth2Result BSL.ByteString` into `FromJSON a => a`

updateRequestHeaders :: Maybe AccessToken -> Request -> Request Source

set several header values. + userAgennt : hoauth2 + accept : application/json + authorization : Bearer xxxxx if AccessToken provided.

setMethod :: StdMethod -> Request -> Request Source

Sets the HTTP method to use