paypal-adaptive-hoops-0.13.1.0: src/PayPal/Adaptive/Core/Client.hs
{-# LANGUAGE TemplateHaskell #-}
module PayPal.Adaptive.Core.Client where
import Data.Aeson.TH
import Data.Aeson.Types (camelTo)
import Import
data Client = Client
{ _clAppId :: Text
, _clUserId :: Text
, _clEnvironment :: Environment
, _clPassword :: Text
, _clSignature :: Text
, _clAccountEmail :: Text
-- ^ Not needed for authentication, but deposits are sent
-- to here and withdrawals are sent from here. Must be the
-- email associated with your PayPal app.
} deriving (Eq, Show)
data Environment = Sandbox | Production deriving (Eq, Show, Read)
$(deriveJSON defaultOptions { fieldLabelModifier = camelTo '_' . drop 3 } ''Client)
$(deriveJSON defaultOptions { constructorTagModifier = id } ''Environment)
$(makeLenses ''Client)
$(makePrisms ''Environment)