hoauth2-1.5.1: Haskell OAuth2 authentication client

Safe HaskellNone
LanguageHaskell2010

Network.OAuth.OAuth2.HttpClient

Contents

Description

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

Synopsis

Token management

fetchAccessToken Source #

Arguments

:: Manager

HTTP connection manager

-> OAuth2

OAuth Data

-> ExchangeToken

OAuth 2 Tokens

-> IO (OAuth2Result Errors OAuth2Token)

Access Token

Request (via POST method) "OAuth2 Token".

fetchRefreshToken Source #

Arguments

:: 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

doJSONPostRequest Source #

Arguments

:: 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 #

Arguments

:: 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.

doSimplePostRequest Source #

Arguments

:: 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

authGetJSON Source #

Arguments

:: 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.

authGetBS Source #

Arguments

:: FromJSON err 
=> Manager

HTTP connection manager.

-> AccessToken 
-> URI 
-> IO (OAuth2Result err ByteString)

Response as ByteString

Conduct an authorized GET request.

authGetBS' Source #

Arguments

:: 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

authPostJSON Source #

Arguments

:: 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.

authPostBS Source #

Arguments

:: FromJSON err 
=> Manager

HTTP connection manager.

-> AccessToken 
-> URI 
-> PostBody 
-> IO (OAuth2Result err ByteString)

Response as ByteString

Conduct POST request.

authPostBS' Source #

Arguments

:: 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

authRequest Source #

Arguments

:: 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

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 #

Set the HTTP method to use.