    {-# LANGUAGE DeriveGeneric #-}

    module Network.OAuth.OAuth2.TokenRequest where

    import           Data.Aeson
    import           GHC.Generics

    instance FromJSON Errors where
      parseJSON = genericParseJSON defaultOptions { constructorTagModifier = camelTo2 '_', allNullaryToStringTag = True }
    instance ToJSON Errors where
      toEncoding = genericToEncoding defaultOptions { constructorTagModifier = camelTo2 '_', allNullaryToStringTag = True }

    -- | Token Error Responses https://tools.ietf.org/html/rfc6749#section-5.2
    data Errors =
        InvalidRequest
      | InvalidClient
      | InvalidGrant
      | UnauthorizedClient
      | UnsupportedGrantType
      | InvalidScope
      deriving (Show, Eq, Generic)