launchdarkly-server-sdk-4.0.0: src/LaunchDarkly/Server/Client/Status.hs
module LaunchDarkly.Server.Client.Status
( Status (..)
, transitionStatus
)
where
-- | The status of the client initialization.
data Status
= -- | The client has not yet finished connecting to LaunchDarkly.
Uninitialized
| -- | The client attempted to connect to LaunchDarkly and was denied.
Unauthorized
| -- | The client has successfuly connected to LaunchDarkly.
Initialized
| -- | The client is being terminated
ShuttingDown
deriving (Show, Eq)
transitionStatus :: Status -> Status -> Status
transitionStatus requestedStatus oldStatus =
case requestedStatus of
-- Only allow setting Initialized if Uninitialized
Initialized -> if oldStatus == Uninitialized then Initialized else oldStatus
-- Only allow setting status if not ShuttingDown
_ -> if oldStatus == ShuttingDown then ShuttingDown else requestedStatus