Skip to content

Commit d6f4ea6

Browse files
axman6phadej
authored andcommitted
Allow multiple assignees in NewIssue and EditIssue (#336)
* Replace single assignee fields with vectors * Remove null fields NewIssue * Add missing notNull function * Make assignees just a Vector in NewIssue
1 parent 6ac12e4 commit d6f4ea6

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/GitHub/Data/Issues.hs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import GitHub.Data.Options (IssueState)
1313
import GitHub.Data.PullRequests
1414
import GitHub.Data.URL (URL)
1515
import GitHub.Internal.Prelude
16-
import Prelude ()
16+
import Prelude ()
1717

1818
data Issue = Issue
1919
{ issueClosedAt :: !(Maybe UTCTime)
@@ -43,7 +43,7 @@ instance Binary Issue
4343
data NewIssue = NewIssue
4444
{ newIssueTitle :: !Text
4545
, newIssueBody :: !(Maybe Text)
46-
, newIssueAssignee :: !(Maybe Text)
46+
, newIssueAssignees :: !(Vector (Name User))
4747
, newIssueMilestone :: !(Maybe (Id Milestone))
4848
, newIssueLabels :: !(Maybe (Vector (Name IssueLabel)))
4949
}
@@ -55,7 +55,7 @@ instance Binary NewIssue
5555
data EditIssue = EditIssue
5656
{ editIssueTitle :: !(Maybe Text)
5757
, editIssueBody :: !(Maybe Text)
58-
, editIssueAssignee :: !(Maybe (Name User))
58+
, editIssueAssignees :: !(Maybe (Vector (Name User)))
5959
, editIssueState :: !(Maybe IssueState)
6060
, editIssueMilestone :: !(Maybe (Id Milestone))
6161
, editIssueLabels :: !(Maybe (Vector (Name IssueLabel)))
@@ -203,19 +203,22 @@ instance FromJSON Issue where
203203
<*> o .:? "milestone"
204204

205205
instance ToJSON NewIssue where
206-
toJSON (NewIssue t b a m ls) = object
206+
toJSON (NewIssue t b a m ls) = object $ filter notNull
207207
[ "title" .= t
208208
, "body" .= b
209-
, "assignee" .= a
209+
, "assignees" .= a
210210
, "milestone" .= m
211211
, "labels" .= ls
212212
]
213+
where
214+
notNull (_, Null) = False
215+
notNull (_, _) = True
213216

214217
instance ToJSON EditIssue where
215-
toJSON (EditIssue t b a s m ls) = object $ filter notNull $
218+
toJSON (EditIssue t b a s m ls) = object $ filter notNull
216219
[ "title" .= t
217220
, "body" .= b
218-
, "assignee" .= a
221+
, "assignees" .= a
219222
, "state" .= s
220223
, "milestone" .= m
221224
, "labels" .= ls

src/GitHub/Endpoints/Issues.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ issuesForRepoR user reqRepoName opts =
8585
-- Creating new issues.
8686

8787
newIssue :: Text -> NewIssue
88-
newIssue title = NewIssue title Nothing Nothing Nothing Nothing
88+
newIssue title = NewIssue title Nothing mempty Nothing Nothing
8989

9090

9191
-- | Create a new issue.

0 commit comments

Comments
 (0)