launchdarkly-server-sdk-3.0.0: src/LaunchDarkly/Server/Client/Status.hs
module LaunchDarkly.Server.Client.Status
( Status(..)
, transitionStatus
)
where
-- | The status of the client initialization.
data Status
= Uninitialized
-- ^ The client has not yet finished connecting to LaunchDarkly.
| Unauthorized
-- ^ The client attempted to connect to LaunchDarkly and was denied.
| Initialized
-- ^ The client has successfuly connected to LaunchDarkly.
| ShuttingDown
-- ^ The client is being terminated
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