stripe-haskell-0.1.0.0: src/Web/Stripe/Event.hs
{-# LANGUAGE OverloadedStrings #-}
-------------------------------------------
-- |
-- Module : Web.Stripe.Event
-- Copyright : (c) David Johnson, 2014
-- Maintainer : djohnson.m@gmail.com
-- Stability : experimental
-- Portability : POSIX
--
-- < https:/\/\stripe.com/docs/api#events >
--
-- @
-- import Web.Stripe
-- import Web.Stripe.Event
--
-- main :: IO ()
-- main = do
-- let config = SecretKey "secret_key"
-- result <- stripe config $ getEvents Nothing Nothing Nothing
-- case result of
-- Right events -> print events
-- Left stripeError -> print stripeError
-- @
module Web.Stripe.Event
( -- * API
getEvent
, getEvents
-- * Types
, EventId (..)
, Event (..)
, EventData (..)
, EventType (..)
, StripeList (..)
, Limit
) where
import Web.Stripe.Client.Internal (Method (GET), Stripe, Stripe,
StripeRequest (..), callAPI, (</>), getParams, toText)
import Web.Stripe.Types (Event (..), EventId (..), Limit, EventData(..),
EventType(..), StripeList (..), Limit,
StartingAfter, EndingBefore)
------------------------------------------------------------------------------
-- | `Event` to retrieve by `EventId`
getEvent
:: EventId -- ^ The ID of the Event to retrieve
-> Stripe Event
getEvent (EventId eventid) = callAPI request
where request = StripeRequest GET url params
url = "events" </> eventid
params = []
------------------------------------------------------------------------------
-- | `StripeList` of `Event`s to retrieve
getEvents
:: Maybe Limit -- ^ Defaults to 10 if `Nothing` specified
-> StartingAfter EventId -- ^ Paginate starting after the following `EventId`
-> EndingBefore EventId -- ^ Paginate ending before the following `EventId`
-> Stripe (StripeList Event)
getEvents
limit
startingAfter
endingBefore = callAPI request
where request = StripeRequest GET url params
url = "events"
params = getParams [
("limit", toText `fmap` limit )
, ("starting_after", (\(EventId x) -> x) `fmap` startingAfter)
, ("ending_before", (\(EventId x) -> x) `fmap` endingBefore)
]