stripe-haskell-0.1.0.0: src/Web/Stripe/Balance.hs
{-# LANGUAGE OverloadedStrings #-}
-------------------------------------------
-- |
-- Module : Web.Stripe.Balance
-- Copyright : (c) David Johnson, 2014
-- Maintainer : djohnson.m@gmail.com
-- Stability : experimental
-- Portability : POSIX
--
-- < https:/\/\stripe.com/docs/api#balance >
--
-- @
-- import Web.Stripe
-- import Web.Stripe.Balance (getBalance)
--
-- main :: IO ()
-- main = do
-- let config = SecretKey "secret_key"
-- result <- stripe config getBalance
-- case result of
-- Right balance -> print balance
-- Left stripeError -> print stripeError
-- @
module Web.Stripe.Balance
( -- * API
getBalance
, getBalanceTransaction
, getBalanceTransactionExpandable
, getBalanceTransactionHistory
-- * Types
, Balance (..)
, TransactionId (..)
, StripeList (..)
, EndingBefore
, StartingAfter
, Limit
, BalanceTransaction
, BalanceAmount
) where
import Web.Stripe.Client.Internal (Method (GET), Stripe,
StripeRequest (..), callAPI,
getParams, toExpandable, toText,
(</>))
import Web.Stripe.Types (Balance (..), BalanceAmount,
BalanceTransaction, EndingBefore,
ExpandParams, Limit, StartingAfter,
StripeList (..),
TransactionId (..))
import Web.Stripe.Types.Util (getTransactionId)
------------------------------------------------------------------------------
-- | Retrieve the current `Balance` for your Stripe account
getBalance :: Stripe Balance
getBalance = callAPI request
where request = StripeRequest GET url params
url = "balance"
params = []
------------------------------------------------------------------------------
-- | Retrieve a 'BalanceTransaction' by 'TransactionId'
getBalanceTransaction
:: TransactionId -- ^ The `TransactionId` of the `Transaction` to retrieve
-> Stripe BalanceTransaction
getBalanceTransaction
transactionid = getBalanceTransactionExpandable transactionid []
------------------------------------------------------------------------------
-- | Retrieve a `BalanceTransaction` by `TransactionId` with `ExpandParams`
getBalanceTransactionExpandable
:: TransactionId -- ^ The `TransactionId` of the `Transaction` to retrieve
-> ExpandParams -- ^ The `ExpandParams` of the object to be expanded
-> Stripe BalanceTransaction
getBalanceTransactionExpandable
transactionid expandParams = callAPI request
where request = StripeRequest GET url params
url = "balance" </> "history" </> getTransactionId transactionid
params = toExpandable expandParams
------------------------------------------------------------------------------
-- | Retrieve the history of `BalanceTransaction`s
getBalanceTransactionHistory
:: Limit -- ^ Defaults to 10 if `Nothing` specified
-> StartingAfter TransactionId -- ^ Paginate starting after the following `TransactionId`
-> EndingBefore TransactionId -- ^ Paginate ending before the following `TransactionId`
-> Stripe (StripeList BalanceTransaction)
getBalanceTransactionHistory
limit
startingAfter
endingBefore = callAPI request
where request = StripeRequest GET url params
url = "balance" </> "history"
params = getParams [
("limit", toText `fmap` limit )
, ("starting_after", (\(TransactionId x) -> x) `fmap` startingAfter)
, ("ending_before", (\(TransactionId x) -> x) `fmap` endingBefore)
]