{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeFamilies #-} ------------------------------------------- -- | -- Module : Web.Stripe.Dispute -- Copyright : (c) David Johnson, 2014 -- Maintainer : djohnson.m@gmail.com -- Stability : experimental -- Portability : POSIX -- -- < https:/\/\stripe.com/docs/api#diputes > -- -- @ -- {-\# LANGUAGE OverloadedStrings \#-} -- import Web.Stripe -- import Web.Stripe.Charge -- import Web.Stripe.Dispute -- -- main :: IO () -- main = do -- let config = StripeConfig (StripeKey "secret_key") -- result <- stripe config $ getCharge (ChargeId "charge_id") -- case result of -- (Left stripeError) -> print stripeError -- (Right (Charge { chargeDispute = dispute })) -> -- case dispute of -- (Just dispute) -> print dispute -- Nothing -> print "no dispute on this charge" -- @ module Web.Stripe.Dispute ( -- * API UpdateDispute , updateDispute , CloseDispute , closeDispute -- * Types , ChargeId (..) , Dispute (..) , DisputeReason (..) , DisputeStatus (..) , Evidence (..) , MetaData (..) ) where import Web.Stripe.StripeRequest (Method (POST), StripeHasParam, StripeRequest (..), StripeReturn, mkStripeRequest) import Web.Stripe.Util (()) import Web.Stripe.Types (ChargeId (..), Dispute (..), DisputeReason (..), DisputeStatus (..), Evidence (..), MetaData(..)) import Web.Stripe.Types.Util (getChargeId) ------------------------------------------------------------------------------ -- | `Dispute` to be updated updateDispute :: ChargeId -- ^ The ID of the Charge being disputed -> StripeRequest UpdateDispute updateDispute chargeId = request where request = mkStripeRequest POST url params url = "charges" getChargeId chargeId "dispute" params = [] data UpdateDispute type instance StripeReturn UpdateDispute = Dispute instance StripeHasParam UpdateDispute Evidence instance StripeHasParam UpdateDispute MetaData ------------------------------------------------------------------------------ -- | `Dispute` to be closed closeDispute :: ChargeId -- ^ The ID of the Charge being disputed -> StripeRequest CloseDispute closeDispute chargeId = request where request = mkStripeRequest POST url params url = "charges" getChargeId chargeId "dispute" "close" params = [] data CloseDispute type instance StripeReturn CloseDispute = Dispute