Skip to content

Commit 3c960f8

Browse files
authored
Merge pull request #2 from dereuromark/worklogs
Add worklog API methods
2 parents a4f507b + 8776f42 commit 3c960f8

File tree

1 file changed

+67
-45
lines changed

1 file changed

+67
-45
lines changed

src/Jira/Api.php

Lines changed: 67 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ class Api {
114114
protected $resolutions;
115115

116116
/**
117-
* Create a JIRA API client.
117+
* Create a Jira API client.
118118
*
119119
* @param string $endpoint Endpoint URL.
120120
* @param \chobie\Jira\Api\Authentication\AuthenticationInterface $authentication Authentication.
@@ -209,31 +209,30 @@ public function getFields() {
209209
/**
210210
* Get specified issue.
211211
*
212-
* @param string $issue_key Issue key should be "YOURPROJ-221".
212+
* @param string $issueKey Issue key should be "YOURPROJ-221".
213213
* @param string $expand Expand.
214214
*
215215
* @return \chobie\Jira\Api\Result|false
216216
*/
217-
public function getIssue($issue_key, $expand = '') {
218-
return $this->api(static::REQUEST_GET, sprintf('/rest/api/2/issue/%s', $issue_key), ['expand' => $expand]);
217+
public function getIssue($issueKey, $expand = '') {
218+
return $this->api(static::REQUEST_GET, sprintf('/rest/api/2/issue/%s', $issueKey), ['expand' => $expand]);
219219
}
220220

221221
/**
222222
* Edits the issue.
223223
*
224-
* @param string $issue_key Issue key.
224+
* @param string $issueKey Issue key.
225225
* @param array $params Params.
226226
*
227227
* @return \chobie\Jira\Api\Result|false
228228
*/
229-
public function editIssue($issue_key, array $params) {
230-
return $this->api(static::REQUEST_PUT, sprintf('/rest/api/2/issue/%s', $issue_key), $params);
229+
public function editIssue($issueKey, array $params = []) {
230+
return $this->api(static::REQUEST_PUT, sprintf('/rest/api/2/issue/%s', $issueKey), $params);
231231
}
232232

233233
/**
234234
* Gets attachments meta information.
235235
*
236-
* @since 2.0.0
237236
* @return array
238237
*/
239238
public function getAttachmentsMetaInformation() {
@@ -361,57 +360,88 @@ public function getCreateMeta(
361360
/**
362361
* Add a comment to a ticket.
363362
*
364-
* @param string $issue_key Issue key should be "YOURPROJ-221".
363+
* @param string $issueKey Issue key should be "YOURPROJ-221".
365364
* @param array|string $params Params.
366365
*
367366
* @return \chobie\Jira\Api\Result|false
368367
*/
369-
public function addComment($issue_key, $params) {
368+
public function addComment($issueKey, $params) {
370369
if (is_string($params)) {
371370
// If $params is scalar string value -> wrapping it properly.
372371
$params = [
373372
'body' => $params,
374373
];
375374
}
376375

377-
return $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/comment', $issue_key), $params);
376+
return $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/comment', $issueKey), $params);
378377
}
379378

380379
/**
381-
* Get all worklogs for an issue.
380+
* Gets all worklogs for an issue.
382381
*
383-
* @since 2.0.0
384-
* @param string $issue_key Issue key should be "YOURPROJ-22".
382+
* @param string $issueKey Issue key should be "YOURPROJ-22".
385383
* @param array $params Params.
386384
*
387385
* @return \chobie\Jira\Api\Result|false
388386
*/
389-
public function getWorklogs($issue_key, array $params) {
390-
return $this->api(static::REQUEST_GET, sprintf('/rest/api/2/issue/%s/worklog', $issue_key), $params);
387+
public function getWorklogs($issueKey, array $params = []) {
388+
return $this->api(static::REQUEST_GET, sprintf('/rest/api/2/issue/%s/worklog', $issueKey), $params);
389+
}
390+
391+
/**
392+
* Creates Jira Worklog
393+
*
394+
* @param string $issueKey
395+
* @param string $time
396+
* @param array $params
397+
* @return array
398+
*/
399+
public function createWorklog($issueKey, $time, array $params = []) {
400+
$params = [
401+
'timeSpent' => $time,
402+
] + $params;
403+
404+
return $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/worklog', $issueKey), $params);
405+
}
406+
407+
/**
408+
* Removes a Jira Worklog
409+
*
410+
* @param string $issueKey
411+
* @param string $worklogId
412+
* @param array $params
413+
* @return array
414+
*/
415+
public function removeWorklog($issueKey, $worklogId, array $params = []) {
416+
$params = [
417+
'adjustEstimate' => 'auto',
418+
] + $params;
419+
420+
return $this->api(static::REQUEST_DELETE, sprintf('/rest/api/2/issue/%s/worklog/%s', $issueKey, $worklogId), $params);
391421
}
392422

393423
/**
394424
* Get available transitions for a ticket.
395425
*
396-
* @param string $issue_key Issue key should be "YOURPROJ-22".
426+
* @param string $issueKey Issue key should be "YOURPROJ-22".
397427
* @param array $params Params.
398428
*
399429
* @return \chobie\Jira\Api\Result|false
400430
*/
401-
public function getTransitions($issue_key, array $params) {
402-
return $this->api(static::REQUEST_GET, sprintf('/rest/api/2/issue/%s/transitions', $issue_key), $params);
431+
public function getTransitions($issueKey, array $params = []) {
432+
return $this->api(static::REQUEST_GET, sprintf('/rest/api/2/issue/%s/transitions', $issueKey), $params);
403433
}
404434

405435
/**
406436
* Transition a ticket.
407437
*
408-
* @param string $issue_key Issue key should be "YOURPROJ-22".
438+
* @param string $issueKey Issue key should be "YOURPROJ-22".
409439
* @param array $params Params.
410440
*
411441
* @return \chobie\Jira\Api\Result|false
412442
*/
413-
public function transition($issue_key, array $params) {
414-
return $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/transitions', $issue_key), $params);
443+
public function transition($issueKey, array $params = []) {
444+
return $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/transitions', $issueKey), $params);
415445
}
416446

417447
/**
@@ -423,8 +453,8 @@ public function getIssueTypes() {
423453
$result = [];
424454
$types = $this->api(static::REQUEST_GET, '/rest/api/2/issuetype', [], true);
425455

426-
foreach ($types as $issue_type) {
427-
$result[] = new IssueType($issue_type);
456+
foreach ($types as $type) {
457+
$result[] = new IssueType($type);
428458
}
429459

430460
return $result;
@@ -444,7 +474,6 @@ public function getVersions($project_key) {
444474
/**
445475
* Helper method to find a specific version based on the name of the version.
446476
*
447-
* @since 2.0.0
448477
* @param string $project_key Project Key.
449478
* @param string $name The version name to match on.
450479
*
@@ -471,7 +500,6 @@ public function findVersionByName($project_key, $name) {
471500
/**
472501
* Get available priorities.
473502
*
474-
* @since 2.0.0
475503
* @return array
476504
*/
477505
public function getPriorities() {
@@ -593,7 +621,6 @@ public function createVersion($project_key, $version, array $options = []) {
593621
/**
594622
* Updates version.
595623
*
596-
* @since 2.0.0
597624
* @link https://docs.atlassian.com/jira/REST/latest/#api/2/version-updateVersion
598625
* @param int $version_id Version ID.
599626
* @param array $params Key->Value list to update the version with.
@@ -607,7 +634,6 @@ public function updateVersion($version_id, array $params = []) {
607634
/**
608635
* Shorthand to mark a version as Released.
609636
*
610-
* @since 2.0.0
611637
* @param int $version_id Version ID.
612638
* @param string|null $release_date Date in Y-m-d format (defaults to today).
613639
* @param array $params Optionally extra parameters.
@@ -633,21 +659,21 @@ public function releaseVersion($version_id, $release_date = null, array $params
633659
/**
634660
* Create attachment.
635661
*
636-
* @param string $issue_key Issue key.
662+
* @param string $issueKey Issue key.
637663
* @param string $filename Filename.
638664
* @param string|null $name Name.
639665
*
640666
* @return \chobie\Jira\Api\Result|false
641667
*/
642-
public function createAttachment($issue_key, $filename, $name = null) {
668+
public function createAttachment($issueKey, $filename, $name = null) {
643669
$options = [
644670
'file' => '@' . $filename,
645671
'name' => $name,
646672
];
647673

648674
return $this->api(
649675
static::REQUEST_POST,
650-
sprintf('/rest/api/2/issue/%s/attachments', $issue_key),
676+
sprintf('/rest/api/2/issue/%s/attachments', $issueKey),
651677
$options,
652678
false,
653679
true,
@@ -657,8 +683,7 @@ public function createAttachment($issue_key, $filename, $name = null) {
657683
/**
658684
* Creates a remote link.
659685
*
660-
* @since 2.0.0
661-
* @param string $issue_key Issue key.
686+
* @param string $issueKey Issue key.
662687
* @param array $object Object.
663688
* @param string|null $relationship Relationship.
664689
* @param string|null $global_id Global ID.
@@ -667,7 +692,7 @@ public function createAttachment($issue_key, $filename, $name = null) {
667692
* @return array|false
668693
*/
669694
public function createRemoteLink(
670-
$issue_key,
695+
$issueKey,
671696
array $object = [],
672697
$relationship = null,
673698
$global_id = null,
@@ -683,7 +708,7 @@ public function createRemoteLink(
683708
$options['application'] = $application;
684709
}
685710

686-
return $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/remotelink', $issue_key), $options, true);
711+
return $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/remotelink', $issueKey), $options, true);
687712
}
688713

689714
/**
@@ -790,16 +815,16 @@ protected function automapFields(array $issue) {
790815
/**
791816
* Set issue watchers.
792817
*
793-
* @param string $issue_key Issue key.
818+
* @param string $issueKey Issue key.
794819
* @param array $watchers Watchers.
795820
*
796821
* @return array<Result|false>
797822
*/
798-
public function setWatchers($issue_key, array $watchers) {
823+
public function setWatchers($issueKey, array $watchers) {
799824
$result = [];
800825

801826
foreach ($watchers as $watcher) {
802-
$result[] = $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/watchers', $issue_key), $watcher);
827+
$result[] = $this->api(static::REQUEST_POST, sprintf('/rest/api/2/issue/%s/watchers', $issueKey), $watcher);
803828
}
804829

805830
return $result;
@@ -809,15 +834,15 @@ public function setWatchers($issue_key, array $watchers) {
809834
* Closes issue.
810835
*
811836
* @TODO: Should have parameters? (e.g comment)
812-
* @param string $issue_key Issue key.
837+
* @param string $issueKey Issue key.
813838
*
814839
* @return \chobie\Jira\Api\Result|array
815840
*/
816-
public function closeIssue($issue_key) {
841+
public function closeIssue($issueKey) {
817842
$result = [];
818843

819844
// Get available transitions.
820-
$tmp_transitions = $this->getTransitions($issue_key, []);
845+
$tmp_transitions = $this->getTransitions($issueKey, []);
821846
$tmp_transitions_result = $tmp_transitions->getResult();
822847
$transitions = $tmp_transitions_result['transitions'];
823848

@@ -826,7 +851,7 @@ public function closeIssue($issue_key) {
826851
// Close issue if required id was found.
827852
if ($v['name'] == 'Close Issue') {
828853
$result = $this->transition(
829-
$issue_key,
854+
$issueKey,
830855
[
831856
'transition' => ['id' => $v['id']],
832857
],
@@ -842,7 +867,6 @@ public function closeIssue($issue_key) {
842867
/**
843868
* Returns project components.
844869
*
845-
* @since 2.0.0
846870
* @param string $project_key Project key.
847871
*
848872
* @return array
@@ -854,7 +878,6 @@ public function getProjectComponents($project_key) {
854878
/**
855879
* Get all issue types with valid status values for a project.
856880
*
857-
* @since 2.0.0
858881
* @param string $project_key Project key.
859882
*
860883
* @return array
@@ -866,7 +889,6 @@ public function getProjectIssueTypes($project_key) {
866889
/**
867890
* Returns a list of all resolutions.
868891
*
869-
* @since 2.0.0
870892
* @return array
871893
*/
872894
public function getResolutions() {

0 commit comments

Comments
 (0)