module Web.MangoPay.Access
( createCredentialsSecret
, oauthLogin
) where
import Control.Applicative ((<$>))
import Data.Maybe (isNothing)
import Data.Text
import Network.HTTP.Conduit (applyBasicAuth)
import Web.MangoPay.Monad
import Web.MangoPay.Types
import qualified Data.Text.Encoding as TE
import qualified Network.HTTP.Types as HT
createCredentialsSecret :: MPUsableMonad m => MangoPayT m Credentials
createCredentialsSecret = do
creds <- getCreds
if isNothing $ cClientSecret creds
then postExchange "/v2/clients" Nothing creds
else return creds
oauthLogin :: MPUsableMonad m => Text -> Text -> MangoPayT m OAuthToken
oauthLogin user pass = do
let query = [("grant_type", Just "client_credentials")] :: HT.Query
req <- applyBasicAuth (TE.encodeUtf8 user) (TE.encodeUtf8 pass) <$>
getPostRequest "/v2/oauth/token" Nothing query
getJSONResponse req