github-tools-0.1.2: src/GitHub/Types/Base/ReviewLinks.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
module GitHub.Types.Base.ReviewLinks where
import Data.Aeson (FromJSON (..), ToJSON (..), object)
import Data.Aeson.Types (Value (..), (.:), (.=))
import Test.QuickCheck.Arbitrary (Arbitrary (..))
import GitHub.Types.Base.Link
------------------------------------------------------------------------------
-- ReviewLinks
data ReviewLinks = ReviewLinks
{ reviewLinksHtml :: Link
, reviewLinksPullRequest :: Link
} deriving (Eq, Show, Read)
instance FromJSON ReviewLinks where
parseJSON (Object x) = ReviewLinks
<$> x .: "html"
<*> x .: "pull_request"
parseJSON _ = fail "ReviewLinks"
instance ToJSON ReviewLinks where
toJSON ReviewLinks{..} = object
[ "html" .= reviewLinksHtml
, "pull_request" .= reviewLinksPullRequest
]
instance Arbitrary ReviewLinks where
arbitrary = ReviewLinks
<$> arbitrary
<*> arbitrary