packages feed

bugsnag-types-1.1.1.0: src/Data/Bugsnag/Types/FeatureFlag.hs

module Data.Bugsnag.Types.FeatureFlag
  ( FeatureFlag (..)
  , exampleFeatureFlag
  , defaultFeatureFlag
  )
where

import Data.Bugsnag.Types.Prelude

data FeatureFlag = FeatureFlag
  { featureFlag :: Text
  -- ^ The name of the feature flag.
  , variant :: Maybe Text
  -- ^ The name of the variant.
  }
  deriving stock (Eq, Generic, Show)

instance FromJSON FeatureFlag where
  parseJSON = genericParseJSON aesonOptions

instance ToJSON FeatureFlag where
  toJSON = genericToJSON aesonOptions
  toEncoding = genericToEncoding aesonOptions

defaultFeatureFlag :: Text -> FeatureFlag
defaultFeatureFlag featureFlag =
  FeatureFlag
    { featureFlag
    , variant = Nothing
    }

exampleFeatureFlag :: FeatureFlag
exampleFeatureFlag =
  FeatureFlag
    { featureFlag = "share_ios_photo_sharing_button"
    , variant = Just "blue_button"
    }