{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} module Test.Config where import qualified Data.ByteString.Char8 as B8 import Control.Applicative ((<$>)) import Web.Stripe import Web.Stripe.Balance import System.Exit import System.Environment getConfig :: IO (Maybe StripeConfig) getConfig = foundKey =<< lookupEnv "STRIPEKEY" where foundKey Nothing = return Nothing foundKey (Just str) = do let config = StripeConfig (B8.pack str) result <- stripe config getBalance case result of Left err -> print err >> exitFailure Right Balance{..} -> case balanceLiveMode of False -> return (Just config) True -> do putStrLn "You entered your production credentials, woops :)" exitFailure