github-tools-0.1.2: src/GitHub/Types/Base/CheckRun.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
module GitHub.Types.Base.CheckRun where
import Data.Aeson (FromJSON (..), ToJSON (..),
object)
import Data.Aeson.Types (Value (..), (.:), (.=))
import Data.Text (Text)
import Test.QuickCheck.Arbitrary (Arbitrary (..))
import GitHub.Types.Base.CheckApp
import GitHub.Types.Base.CheckOutput
import GitHub.Types.Base.CheckPullRequest
import GitHub.Types.Base.CheckSuite
------------------------------------------------------------------------------
-- CheckRun
data CheckRun = CheckRun
{ checkRunApp :: CheckApp
, checkRunCheckSuite :: CheckSuite
, checkRunCompletedAt :: Maybe Text
, checkRunConclusion :: Maybe Text
, checkRunDetailsUrl :: Text
, checkRunExternalId :: Text
, checkRunHeadSha :: Text
, checkRunHtmlUrl :: Text
, checkRunId :: Int
, checkRunName :: Text
, checkRunNodeId :: Text
, checkRunOutput :: CheckOutput
, checkRunPullRequests :: [CheckPullRequest]
, checkRunStartedAt :: Text
, checkRunStatus :: Text
, checkRunUrl :: Text
} deriving (Eq, Show, Read)
instance FromJSON CheckRun where
parseJSON (Object x) = CheckRun
<$> x .: "app"
<*> x .: "check_suite"
<*> x .: "completed_at"
<*> x .: "conclusion"
<*> x .: "details_url"
<*> x .: "external_id"
<*> x .: "head_sha"
<*> x .: "html_url"
<*> x .: "id"
<*> x .: "name"
<*> x .: "node_id"
<*> x .: "output"
<*> x .: "pull_requests"
<*> x .: "started_at"
<*> x .: "status"
<*> x .: "url"
parseJSON _ = fail "CheckRun"
instance ToJSON CheckRun where
toJSON CheckRun{..} = object
[ "app" .= checkRunApp
, "check_suite" .= checkRunCheckSuite
, "completed_at" .= checkRunCompletedAt
, "conclusion" .= checkRunConclusion
, "details_url" .= checkRunDetailsUrl
, "external_id" .= checkRunExternalId
, "head_sha" .= checkRunHeadSha
, "html_url" .= checkRunHtmlUrl
, "id" .= checkRunId
, "name" .= checkRunName
, "node_id" .= checkRunNodeId
, "output" .= checkRunOutput
, "pull_requests" .= checkRunPullRequests
, "started_at" .= checkRunStartedAt
, "status" .= checkRunStatus
, "url" .= checkRunUrl
]
instance Arbitrary CheckRun where
arbitrary = CheckRun
<$> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary
<*> arbitrary