{-# LANGUAGE DeriveGeneric #-} module DocuSign.Client.Configuration ( Config (..) , AccountConfig (..) , ServerConfig (..) ) where import Data.Text ( Text ) import Data.UUID ( UUID ) import GHC.Generics ( Generic ) import DocuSign.Client.Types import DocuSign.Base.Fields import qualified Data.Aeson as J data Config = Config { configAccount :: AccountConfig , configServer :: ServerConfig } deriving (Generic, Read, Show) instance J.FromJSON Config where parseJSON = J.genericParseJSON (removeFieldLabelPrefix "config") instance J.ToJSON Config where toJSON = J.genericToJSON (removeFieldLabelPrefix "config") data AccountConfig = AccountConfig { accountId :: AccountId , accountKey :: UUID , accountUsername :: Text , accountPassword :: Text } deriving (Generic, Read, Show) instance J.FromJSON AccountConfig where parseJSON = J.genericParseJSON (removeFieldLabelPrefix "account") instance J.ToJSON AccountConfig where toJSON = J.genericToJSON (removeFieldLabelPrefix "account") data ServerConfig = ServerConfig { serverHost :: Text , serverPort :: Int } deriving (Generic, Read, Show) instance J.FromJSON ServerConfig where parseJSON = J.genericParseJSON (removeFieldLabelPrefix "server") instance J.ToJSON ServerConfig where toJSON = J.genericToJSON (removeFieldLabelPrefix "server")