diff --git a/src/GitHub/Data/Issues.hs b/src/GitHub/Data/Issues.hs index cb3981fb..82c0324d 100644 --- a/src/GitHub/Data/Issues.hs +++ b/src/GitHub/Data/Issues.hs @@ -13,7 +13,7 @@ import GitHub.Data.Options (IssueState) import GitHub.Data.PullRequests import GitHub.Data.URL (URL) import GitHub.Internal.Prelude -import Prelude () +import Prelude () data Issue = Issue { issueClosedAt :: !(Maybe UTCTime) @@ -43,7 +43,7 @@ instance Binary Issue data NewIssue = NewIssue { newIssueTitle :: !Text , newIssueBody :: !(Maybe Text) - , newIssueAssignee :: !(Maybe Text) + , newIssueAssignees :: !(Vector (Name User)) , newIssueMilestone :: !(Maybe (Id Milestone)) , newIssueLabels :: !(Maybe (Vector (Name IssueLabel))) } @@ -55,7 +55,7 @@ instance Binary NewIssue data EditIssue = EditIssue { editIssueTitle :: !(Maybe Text) , editIssueBody :: !(Maybe Text) - , editIssueAssignee :: !(Maybe (Name User)) + , editIssueAssignees :: !(Maybe (Vector (Name User))) , editIssueState :: !(Maybe IssueState) , editIssueMilestone :: !(Maybe (Id Milestone)) , editIssueLabels :: !(Maybe (Vector (Name IssueLabel))) @@ -203,19 +203,22 @@ instance FromJSON Issue where <*> o .:? "milestone" instance ToJSON NewIssue where - toJSON (NewIssue t b a m ls) = object + toJSON (NewIssue t b a m ls) = object $ filter notNull [ "title" .= t , "body" .= b - , "assignee" .= a + , "assignees" .= a , "milestone" .= m , "labels" .= ls ] + where + notNull (_, Null) = False + notNull (_, _) = True instance ToJSON EditIssue where - toJSON (EditIssue t b a s m ls) = object $ filter notNull $ + toJSON (EditIssue t b a s m ls) = object $ filter notNull [ "title" .= t , "body" .= b - , "assignee" .= a + , "assignees" .= a , "state" .= s , "milestone" .= m , "labels" .= ls diff --git a/src/GitHub/Endpoints/Issues.hs b/src/GitHub/Endpoints/Issues.hs index 431e1c3e..7b2c5c43 100644 --- a/src/GitHub/Endpoints/Issues.hs +++ b/src/GitHub/Endpoints/Issues.hs @@ -85,7 +85,7 @@ issuesForRepoR user reqRepoName opts = -- Creating new issues. newIssue :: Text -> NewIssue -newIssue title = NewIssue title Nothing Nothing Nothing Nothing +newIssue title = NewIssue title Nothing mempty Nothing Nothing -- | Create a new issue.