module Data.Api.Link
( plaidCreatePublicToken
, plaidExchangeToken
) where
import Data.Api.Types (executePost)
import Data.Common
plaidCreatePublicToken
:: ( MonadReader PlaidEnv m
, MonadThrow m
, PlaidHttp m
)
=> PlaidBody PublicTokenCreate
-> m PlaidPublicTokenResponse
plaidCreatePublicToken body = do
env <- ask
response <- executePost (envUrl (env ^. plaidEnvEnvironment) <> "/sandbox/public_token/create") body
parseOrFail response
plaidExchangeToken
:: ( MonadReader PlaidEnv m
, MonadThrow m
, PlaidHttp m)
=> PlaidBody PlaidTokenExchange
-> m PlaidAccessTokenResponse
plaidExchangeToken body = do
env <- ask
response <- executePost (envUrl (env ^. plaidEnvEnvironment) <> "/item/public_token/exchange") body
parseOrFail response