github-tools-0.1.2: src/GitHub/Types/Base/DeploymentPayload.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
module GitHub.Types.Base.DeploymentPayload where
import Data.Aeson (FromJSON (..), ToJSON (..), object)
import Data.Aeson.Types (Value (..), (.:?), (.=))
import Data.Text (Text)
import Data.Text.Arbitrary ()
import Test.QuickCheck.Arbitrary (Arbitrary (..))
------------------------------------------------------------------------------
-- DeploymentPayload
newtype DeploymentPayload = DeploymentPayload
{ deploymentPayloadWebUrl :: Maybe Text
} deriving (Eq, Show, Read)
instance FromJSON DeploymentPayload where
parseJSON (Object x) = DeploymentPayload
<$> x .:? "web_url"
parseJSON _ = fail "DeploymentPayload"
instance ToJSON DeploymentPayload where
toJSON DeploymentPayload{..} = object
[ "web_url" .= deploymentPayloadWebUrl
]
instance Arbitrary DeploymentPayload where
arbitrary = DeploymentPayload
<$> arbitrary