mirror of
https://github.com/freckle/yesod-auth-oauth2.git
synced 2026-01-21 16:41:55 +01:00
I had hoped to get away from this entirely, to an Either-based interface, but that seems to be stalling as an initiative. So in the meantime, let's at least make our exceptions more meaningful.
30 lines
724 B
Haskell
30 lines
724 B
Haskell
{-# LANGUAGE DeriveDataTypeable #-}
|
|
|
|
module Yesod.Auth.OAuth2.Exception
|
|
( YesodOAuth2Exception(..)
|
|
) where
|
|
|
|
import Control.Exception.Safe
|
|
import Data.ByteString.Lazy (ByteString)
|
|
import Data.Text (Text)
|
|
|
|
data YesodOAuth2Exception
|
|
= OAuth2Error Text ByteString
|
|
-- ^ HTTP error during OAuth2 handshake
|
|
--
|
|
-- Plugin name and JSON-encoded @OAuth2Error@ from @hoauth2@.
|
|
--
|
|
| JSONDecodingError Text String
|
|
-- ^ User profile was not as expected
|
|
--
|
|
-- Plugin name and Aeson parse error message.
|
|
--
|
|
| GenericError Text String
|
|
-- ^ Other error conditions
|
|
--
|
|
-- Plugin name and error message.
|
|
--
|
|
deriving (Show, Typeable)
|
|
|
|
instance Exception YesodOAuth2Exception
|