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