module Wire.TeamInvitationSubsystem.Error where

import Imports
import Wire.API.Error
import Wire.API.Error.Brig qualified as E
import Wire.Error

data TeamInvitationSubsystemError
  = TeamInvitationNoEmail
  | TeamInvitationInsufficientTeamPermissions
  | TooManyTeamInvitations
  | TeamInvitationBlacklistedEmail
  | TeamInvitationEmailTaken
  deriving (Int -> TeamInvitationSubsystemError -> ShowS
[TeamInvitationSubsystemError] -> ShowS
TeamInvitationSubsystemError -> String
(Int -> TeamInvitationSubsystemError -> ShowS)
-> (TeamInvitationSubsystemError -> String)
-> ([TeamInvitationSubsystemError] -> ShowS)
-> Show TeamInvitationSubsystemError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TeamInvitationSubsystemError -> ShowS
showsPrec :: Int -> TeamInvitationSubsystemError -> ShowS
$cshow :: TeamInvitationSubsystemError -> String
show :: TeamInvitationSubsystemError -> String
$cshowList :: [TeamInvitationSubsystemError] -> ShowS
showList :: [TeamInvitationSubsystemError] -> ShowS
Show)

teamInvitationErrorToHttpError :: TeamInvitationSubsystemError -> HttpError
teamInvitationErrorToHttpError :: TeamInvitationSubsystemError -> HttpError
teamInvitationErrorToHttpError =
  Error -> HttpError
StdError (Error -> HttpError)
-> (TeamInvitationSubsystemError -> Error)
-> TeamInvitationSubsystemError
-> HttpError
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    TeamInvitationSubsystemError
TeamInvitationNoEmail -> forall {k} (e :: k). KnownError (MapError e) => Error
forall (e :: BrigError). KnownError (MapError e) => Error
errorToWai @E.NoEmail
    TeamInvitationSubsystemError
TeamInvitationInsufficientTeamPermissions -> forall {k} (e :: k). KnownError (MapError e) => Error
forall (e :: BrigError). KnownError (MapError e) => Error
errorToWai @E.InsufficientTeamPermissions
    TeamInvitationSubsystemError
TooManyTeamInvitations -> forall {k} (e :: k). KnownError (MapError e) => Error
forall (e :: BrigError). KnownError (MapError e) => Error
errorToWai @E.TooManyTeamInvitations
    TeamInvitationSubsystemError
TeamInvitationBlacklistedEmail -> forall {k} (e :: k). KnownError (MapError e) => Error
forall (e :: BrigError). KnownError (MapError e) => Error
errorToWai @E.BlacklistedEmail
    TeamInvitationSubsystemError
TeamInvitationEmailTaken -> forall {k} (e :: k). KnownError (MapError e) => Error
forall (e :: BrigError). KnownError (MapError e) => Error
errorToWai @E.EmailExists