module Signet.Unstable.Exception.SignetException where

import qualified Control.Monad.Catch as Exception
import qualified Signet.Unstable.Exception.ToleranceException as ToleranceException
import qualified Signet.Unstable.Exception.VerificationException as VerificationException

data SignetException
  = ToleranceException ToleranceException.ToleranceException
  | VerificationException VerificationException.VerificationException
  deriving (SignetException -> SignetException -> Bool
(SignetException -> SignetException -> Bool)
-> (SignetException -> SignetException -> Bool)
-> Eq SignetException
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SignetException -> SignetException -> Bool
== :: SignetException -> SignetException -> Bool
$c/= :: SignetException -> SignetException -> Bool
/= :: SignetException -> SignetException -> Bool
Eq, Int -> SignetException -> ShowS
[SignetException] -> ShowS
SignetException -> String
(Int -> SignetException -> ShowS)
-> (SignetException -> String)
-> ([SignetException] -> ShowS)
-> Show SignetException
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SignetException -> ShowS
showsPrec :: Int -> SignetException -> ShowS
$cshow :: SignetException -> String
show :: SignetException -> String
$cshowList :: [SignetException] -> ShowS
showList :: [SignetException] -> ShowS
Show)

instance Exception.Exception SignetException where
  displayException :: SignetException -> String
displayException SignetException
signetException =
    String
"failed to verify webhook: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> case SignetException
signetException of
      ToleranceException ToleranceException
toleranceException ->
        ToleranceException -> String
forall e. Exception e => e -> String
Exception.displayException ToleranceException
toleranceException
      VerificationException VerificationException
verificationException ->
        VerificationException -> String
forall e. Exception e => e -> String
Exception.displayException VerificationException
verificationException