Skip to content

Commit e29ab46

Browse files
o.trelinm1guelpf
authored andcommitted
Ability to set parameter 'created_at' when creating new discussion or creating new discussion note
1 parent 180fbfd commit e29ab46

File tree

4 files changed

+33
-15
lines changed

4 files changed

+33
-15
lines changed

lib/Gitlab/Api/Issues.php

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -192,28 +192,38 @@ public function showDiscussion($project_id, $issue_iid, $discussion_id)
192192
/**
193193
* @param int $project_id
194194
* @param int $issue_iid
195-
* @param string $body
195+
* @param string|array $body
196196
* @return mixed
197197
*/
198198
public function addDiscussion($project_id, $issue_iid, $body)
199199
{
200-
return $this->post($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_iid).'/discussions'), array(
201-
'body' => $body
202-
));
200+
// backwards compatibility
201+
if (is_array($body)) {
202+
$params = $body;
203+
} else {
204+
$params = array('body' => $body);
205+
}
206+
207+
return $this->post($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_iid).'/discussions'), $params);
203208
}
204209

205210
/**
206211
* @param int $project_id
207212
* @param int $issue_iid
208213
* @param string $discussion_id
209-
* @param string $body
214+
* @param string|array $body
210215
* @return mixed
211216
*/
212217
public function addDiscussionNote($project_id, $issue_iid, $discussion_id, $body)
213218
{
214-
return $this->post($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_iid).'/discussions/'.$this->encodePath($discussion_id).'/notes'), array(
215-
'body' => $body
216-
));
219+
// backwards compatibility
220+
if (is_array($body)) {
221+
$params = $body;
222+
} else {
223+
$params = array('body' => $body);
224+
}
225+
226+
return $this->post($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_iid).'/discussions/'.$this->encodePath($discussion_id).'/notes'), $params);
217227
}
218228

219229
/**

lib/Gitlab/Api/MergeRequests.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,14 +265,19 @@ public function resolveDiscussion($project_id, $mr_iid, $discussion_id, $resolve
265265
* @param int $project_id
266266
* @param int $mr_iid
267267
* @param string $discussion_id
268-
* @param string $body
268+
* @param string|array $body
269269
* @return mixed
270270
*/
271271
public function addDiscussionNote($project_id, $mr_iid, $discussion_id, $body)
272272
{
273-
return $this->post($this->getProjectPath($project_id, 'merge_requests/'.$this->encodePath($mr_iid).'/discussions/'.$this->encodePath($discussion_id).'/notes'), array(
274-
'body' => $body
275-
));
273+
// backwards compatibility
274+
if (is_array($body)) {
275+
$params = $body;
276+
} else {
277+
$params = array('body' => $body);
278+
}
279+
280+
return $this->post($this->getProjectPath($project_id, 'merge_requests/'.$this->encodePath($mr_iid).'/discussions/'.$this->encodePath($discussion_id).'/notes'), $params);
276281
}
277282

278283
/**

test/Gitlab/Tests/Api/IssuesTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,13 @@ public function shouldCreateDiscussion()
247247
$expectedArray = array('id' => 'abc', 'body' => 'A new discussion');
248248

249249
$api = $this->getApiMock();
250-
$api->expects($this->once())
250+
$api->expects($this->exactly(2))
251251
->method('post')
252252
->with('projects/1/issues/2/discussions', array('body' => 'A new discussion'))
253253
->will($this->returnValue($expectedArray))
254254
;
255255

256+
$this->assertEquals($expectedArray, $api->addDiscussion(1, 2, array('body' => 'A new discussion')));
256257
$this->assertEquals($expectedArray, $api->addDiscussion(1, 2, 'A new discussion'));
257258
}
258259

@@ -264,12 +265,13 @@ public function shouldCreateDiscussionNote()
264265
$expectedArray = array('id' => 3, 'body' => 'A new discussion note');
265266

266267
$api = $this->getApiMock();
267-
$api->expects($this->once())
268+
$api->expects($this->exactly(2))
268269
->method('post')
269270
->with('projects/1/issues/2/discussions/abc/notes', array('body' => 'A new discussion note'))
270271
->will($this->returnValue($expectedArray))
271272
;
272273

274+
$this->assertEquals($expectedArray, $api->addDiscussionNote(1, 2, 'abc', array('body' => 'A new discussion note')));
273275
$this->assertEquals($expectedArray, $api->addDiscussionNote(1, 2, 'abc', 'A new discussion note'));
274276
}
275277

test/Gitlab/Tests/Api/MergeRequestsTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,12 +344,13 @@ public function shouldCreateDiscussionNote()
344344
$expectedArray = array('id' => 3, 'body' => 'A new discussion note');
345345

346346
$api = $this->getApiMock();
347-
$api->expects($this->once())
347+
$api->expects($this->exactly(2))
348348
->method('post')
349349
->with('projects/1/merge_requests/2/discussions/abc/notes', array('body' => 'A new discussion note'))
350350
->will($this->returnValue($expectedArray))
351351
;
352352

353+
$this->assertEquals($expectedArray, $api->addDiscussionNote(1, 2, 'abc', array('body' => 'A new discussion note')));
353354
$this->assertEquals($expectedArray, $api->addDiscussionNote(1, 2, 'abc', 'A new discussion note'));
354355
}
355356

0 commit comments

Comments
 (0)