diff --git a/src/GitHub/Types/Base/Organization.hs b/src/GitHub/Types/Base/Organization.hs index 7cac83e..268491a 100644 --- a/src/GitHub/Types/Base/Organization.hs +++ b/src/GitHub/Types/Base/Organization.hs @@ -4,7 +4,7 @@ module GitHub.Types.Base.Organization where import Control.Applicative ((<$>), (<*>)) import Data.Aeson (FromJSON (..), ToJSON (..), object) -import Data.Aeson.Types (Value (..), (.:), (.=)) +import Data.Aeson.Types (Value (..), (.:), (.:?), (.=)) import Data.Text (Text) import Data.Text.Arbitrary () import Test.QuickCheck.Arbitrary (Arbitrary (..)) @@ -13,50 +13,53 @@ import Test.QuickCheck.Arbitrary (Arbitrary (..)) -- Organization data Organization = Organization - { organizationLogin :: Text - , organizationId :: Int - , organizationUrl :: Text - , organizationReposUrl :: Text + { organizationAvatarUrl :: Text + , organizationDescription :: Text + , organizationEmail :: Maybe Text , organizationEventsUrl :: Text , organizationHooksUrl :: Text + , organizationId :: Int , organizationIssuesUrl :: Text + , organizationLogin :: Text , organizationMembersUrl :: Text , organizationPublicMembersUrl :: Text - , organizationAvatarUrl :: Text - , organizationDescription :: Text + , organizationReposUrl :: Text + , organizationUrl :: Text } deriving (Eq, Show, Read) instance FromJSON Organization where parseJSON (Object x) = Organization - <$> x .: "login" - <*> x .: "id" - <*> x .: "url" - <*> x .: "repos_url" + <$> x .: "avatar_url" + <*> x .: "description" + <*> x .:? "email" <*> x .: "events_url" <*> x .: "hooks_url" + <*> x .: "id" <*> x .: "issues_url" + <*> x .: "login" <*> x .: "members_url" <*> x .: "public_members_url" - <*> x .: "avatar_url" - <*> x .: "description" + <*> x .: "repos_url" + <*> x .: "url" parseJSON _ = fail "Organization" instance ToJSON Organization where toJSON Organization{..} = object - [ "login" .= organizationLogin - , "id" .= organizationId - , "url" .= organizationUrl - , "repos_url" .= organizationReposUrl + [ "avatar_url" .= organizationAvatarUrl + , "description" .= organizationDescription + , "email" .= organizationEmail , "events_url" .= organizationEventsUrl , "hooks_url" .= organizationHooksUrl + , "id" .= organizationId , "issues_url" .= organizationIssuesUrl + , "login" .= organizationLogin , "members_url" .= organizationMembersUrl , "public_members_url" .= organizationPublicMembersUrl - , "avatar_url" .= organizationAvatarUrl - , "description" .= organizationDescription + , "repos_url" .= organizationReposUrl + , "url" .= organizationUrl ] @@ -73,3 +76,4 @@ instance Arbitrary Organization where <*> arbitrary <*> arbitrary <*> arbitrary + <*> arbitrary diff --git a/src/GitHub/Types/Base/PullRequest.hs b/src/GitHub/Types/Base/PullRequest.hs index 9c55724..564c83d 100644 --- a/src/GitHub/Types/Base/PullRequest.hs +++ b/src/GitHub/Types/Base/PullRequest.hs @@ -49,6 +49,7 @@ data PullRequest = PullRequest , pullRequestMilestone :: Maybe Milestone , pullRequestNumber :: Int , pullRequestPatchUrl :: Text + , pullRequestRequestedReviewers :: [Text] , pullRequestReviewComments :: Int , pullRequestReviewCommentsUrl :: Text , pullRequestReviewCommentUrl :: Text @@ -93,6 +94,7 @@ instance FromJSON PullRequest where <*> x .: "milestone" <*> x .: "number" <*> x .: "patch_url" + <*> x .: "requested_reviewers" <*> x .: "review_comments" <*> x .: "review_comments_url" <*> x .: "review_comment_url" @@ -138,6 +140,7 @@ instance ToJSON PullRequest where , "milestone" .= pullRequestMilestone , "number" .= pullRequestNumber , "patch_url" .= pullRequestPatchUrl + , "requested_reviewers" .= pullRequestRequestedReviewers , "review_comments" .= pullRequestReviewComments , "review_comments_url" .= pullRequestReviewCommentsUrl , "review_comment_url" .= pullRequestReviewCommentUrl @@ -191,3 +194,4 @@ instance Arbitrary PullRequest where <*> arbitrary <*> arbitrary <*> arbitrary + <*> arbitrary diff --git a/src/GitHub/Types/Base/User.hs b/src/GitHub/Types/Base/User.hs index 60bef30..bd7a4a1 100644 --- a/src/GitHub/Types/Base/User.hs +++ b/src/GitHub/Types/Base/User.hs @@ -13,68 +13,68 @@ import Test.QuickCheck.Arbitrary (Arbitrary (..)) -- User data User = User - { userLogin :: Text - , userId :: Int - , userAvatarUrl :: Text - , userGravatarId :: Text - , userUrl :: Text - , userHtmlUrl :: Text + { userAvatarUrl :: Text + , userEventsUrl :: Text , userFollowersUrl :: Text , userFollowingUrl :: Text , userGistsUrl :: Text - , userStarredUrl :: Text - , userSubscriptionsUrl :: Text + , userGravatarId :: Text + , userHtmlUrl :: Text + , userId :: Int + , userLogin :: Text , userOrganizationsUrl :: Text - , userReposUrl :: Text - , userEventsUrl :: Text , userReceivedEventsUrl :: Text - , userType :: Text + , userReposUrl :: Text , userSiteAdmin :: Bool + , userStarredUrl :: Text + , userSubscriptionsUrl :: Text + , userType :: Text + , userUrl :: Text } deriving (Eq, Show, Read) instance FromJSON User where parseJSON (Object x) = User - <$> x .: "login" - <*> x .: "id" - <*> x .: "avatar_url" - <*> x .: "gravatar_id" - <*> x .: "url" - <*> x .: "html_url" + <$> x .: "avatar_url" + <*> x .: "events_url" <*> x .: "followers_url" <*> x .: "following_url" <*> x .: "gists_url" - <*> x .: "starred_url" - <*> x .: "subscriptions_url" + <*> x .: "gravatar_id" + <*> x .: "html_url" + <*> x .: "id" + <*> x .: "login" <*> x .: "organizations_url" - <*> x .: "repos_url" - <*> x .: "events_url" <*> x .: "received_events_url" - <*> x .: "type" + <*> x .: "repos_url" <*> x .: "site_admin" + <*> x .: "starred_url" + <*> x .: "subscriptions_url" + <*> x .: "type" + <*> x .: "url" parseJSON _ = fail "User" instance ToJSON User where toJSON User{..} = object - [ "login" .= userLogin - , "id" .= userId - , "avatar_url" .= userAvatarUrl - , "gravatar_id" .= userGravatarId - , "url" .= userUrl - , "html_url" .= userHtmlUrl + [ "avatar_url" .= userAvatarUrl + , "events_url" .= userEventsUrl , "followers_url" .= userFollowersUrl , "following_url" .= userFollowingUrl , "gists_url" .= userGistsUrl - , "starred_url" .= userStarredUrl - , "subscriptions_url" .= userSubscriptionsUrl + , "gravatar_id" .= userGravatarId + , "html_url" .= userHtmlUrl + , "id" .= userId + , "login" .= userLogin , "organizations_url" .= userOrganizationsUrl - , "repos_url" .= userReposUrl - , "events_url" .= userEventsUrl , "received_events_url" .= userReceivedEventsUrl - , "type" .= userType + , "repos_url" .= userReposUrl , "site_admin" .= userSiteAdmin + , "starred_url" .= userStarredUrl + , "subscriptions_url" .= userSubscriptionsUrl + , "type" .= userType + , "url" .= userUrl ]