module Web.Stripe.Bitcoin
(
createReceiver
, getReceiver
, listReceivers
, BitcoinReceiver (..)
, BitcoinReceiverId (..)
, BitcoinTransaction (..)
, BitcoinTransactionId (..)
, Email (..)
, StripeList (..)
) where
import Web.Stripe.Client.Internal ( Method (GET, POST)
, Stripe
, StripeRequest (..)
, (</>)
, callAPI
, getParams
, toText )
import Web.Stripe.Types
createReceiver
:: Integer
-> Email
-> Stripe BitcoinReceiver
createReceiver amount (Email email) = callAPI request
where request = StripeRequest POST url params
url = "bitcoin/receivers"
params = getParams [ ("currency", Just "usd")
, ("amount", Just $ toText amount )
, ("email", Just email )
]
getReceiver
:: BitcoinReceiverId
-> Stripe BitcoinReceiver
getReceiver (BitcoinReceiverId receiverId) = callAPI request
where request = StripeRequest GET url params
url = "bitcoin/receivers" </> receiverId
params = []
listReceivers
:: Maybe Limit
-> StartingAfter BitcoinReceiverId
-> EndingBefore BitcoinReceiverId
-> Stripe (StripeList BitcoinReceiver)
listReceivers
limit
startingAfter
endingBefore = callAPI request
where
request = StripeRequest GET url params
url = "bitcoin/receivers"
params = getParams [
("limit", toText `fmap` limit )
, ("starting_after", (\(BitcoinReceiverId x) -> x) `fmap` startingAfter)
, ("ending_before", (\(BitcoinReceiverId x) -> x) `fmap` endingBefore)
]