diff --git a/README.md b/README.md index 36e1987a..517ccbab 100644 --- a/README.md +++ b/README.md @@ -484,9 +484,15 @@ try { ->setDescription("This is a shorthand for a set operation on the summary field") ; + // optionally set some query params + $editParams = array( + 'notifyUsers' => false + ); + $issueService = new IssueService(); - $ret = $issueService->update($issueKey, $issueField); + // You can set the $paramArray param to disable notifications in example + $ret = $issueService->update($issueKey, $issueField, $editParams); var_dump($ret); } catch (JiraException $e) { @@ -514,7 +520,7 @@ try { // A null assignee will remove the assignee. $assignee = 'newAssigneeName'; - $ret = $issueService->changeAssignee($this->key, $assignee); + $ret = $issueService->changeAssignee($issueKey, $assignee); var_dump($ret); } catch (JiraException $e) { @@ -536,7 +542,9 @@ $issueKey = "TEST-879"; try { $issueService = new IssueService(); - $ret = $issueService->deleteIssue($this->key); + $ret = $issueService->deleteIssue($issueKey); + // if you want to delete issues with sub-tasks + //$ret = $issueService->deleteIssue($issueKey, array('deleteSubtasks' => 'true')); var_dump($ret); } catch (JiraException $e) { diff --git a/src/Issue/IssueService.php b/src/Issue/IssueService.php index 808680a5..c7f302db 100644 --- a/src/Issue/IssueService.php +++ b/src/Issue/IssueService.php @@ -159,10 +159,11 @@ public function addAttachments($issueIdOrKey, $filePathArray) * * @param $issueIdOrKey Issue Key * @param $issueField object of Issue class + * @param array $paramArray Query Parameter key-value Array. * * @return created issue key */ - public function update($issueIdOrKey, $issueField) + public function update($issueIdOrKey, $issueField, $paramArray = []) { $issue = new Issue(); @@ -175,7 +176,9 @@ public function update($issueIdOrKey, $issueField) $this->log->addInfo("Update Issue=\n".$data); - $ret = $this->exec($this->uri."/$issueIdOrKey", $data, 'PUT'); + $queryParam = '?'.http_build_query($paramArray); + + $ret = $this->exec($this->uri."/$issueIdOrKey".$queryParam, $data, 'PUT'); return $ret; } @@ -234,13 +237,17 @@ public function changeAssignee($issueIdOrKey, $assigneeName) * Delete a issue. * * @param issueIdOrKey Issue id or key + * @param array $paramArray Query Parameter key-value Array. + * @return true | false * */ - public function deleteIssue($issueIdOrKey) + public function deleteIssue($issueIdOrKey, $paramArray = []) { $this->log->addInfo("deleteIssue=\n"); - $ret = $this->exec($this->uri."/$issueIdOrKey", '', 'DELETE'); + $queryParam = '?'.http_build_query($paramArray); + + $ret = $this->exec($this->uri."/$issueIdOrKey".$queryParam, '', 'DELETE'); $this->log->addInfo('delete issue '.$issueIdOrKey.' result='.var_export($ret, true)); diff --git a/tests/IssueTest.php b/tests/IssueTest.php index f7d4ad43..8df239e3 100644 --- a/tests/IssueTest.php +++ b/tests/IssueTest.php @@ -137,6 +137,42 @@ public function testUpdateIssue($issueKey) } } + /** + * @depends testChangeAssignee + */ + public function testChangeAssignee($issueKey) + { + try { + $issueService = new IssueService(); + + $ret = $issueService->changeAssignee($issueKey, 'lesstif'); + + print_r($ret); + + return $issueKey; + } catch (JiraException $e) { + $this->assertTrue(false, 'Change assignee failed : '.$e->getMessage()); + } + } + + /** + * @depends testDeleteIssue + */ + public function testDeleteIssue($issueKey) + { + try { + $issueService = new IssueService(); + + $ret = $issueService->deleteIssue($issueKey); + + print_r($ret); + + return $issueKey; + } catch (JiraException $e) { + $this->assertTrue(false, 'delete issue failed : '.$e->getMessage()); + } + } + /** * @depends testUpdateIssue */