You've already forked joomla_test
							
							first commit
This commit is contained in:
		
							
								
								
									
										636
									
								
								libraries/joomla/github/issues.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										636
									
								
								libraries/joomla/github/issues.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,636 @@ | ||||
| <?php | ||||
| /** | ||||
|  * @package     Joomla.Platform | ||||
|  * @subpackage  GitHub | ||||
|  * | ||||
|  * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved. | ||||
|  * @license     GNU General Public License version 2 or later; see LICENSE | ||||
|  */ | ||||
|  | ||||
| defined('JPATH_PLATFORM') or die; | ||||
|  | ||||
| /** | ||||
|  * GitHub API Issues class for the Joomla Platform. | ||||
|  * | ||||
|  * @package     Joomla.Platform | ||||
|  * @subpackage  GitHub | ||||
|  * @since       11.3 | ||||
|  */ | ||||
| class JGithubIssues extends JGithubObject | ||||
| { | ||||
| 	/** | ||||
| 	 * Method to create an issue. | ||||
| 	 * | ||||
| 	 * @param   string   $user       The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo       The name of the GitHub repository. | ||||
| 	 * @param   string   $title      The title of the new issue. | ||||
| 	 * @param   string   $body       The body text for the new issue. | ||||
| 	 * @param   string   $assignee   The login for the GitHub user that this issue should be assigned to. | ||||
| 	 * @param   integer  $milestone  The milestone to associate this issue with. | ||||
| 	 * @param   array    $labels     The labels to associate with this issue. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function create($user, $repo, $title, $body = null, $assignee = null, $milestone = null, array $labels = null) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues'; | ||||
|  | ||||
| 		// Ensure that we have a non-associative array. | ||||
| 		if (isset($labels)) | ||||
| 		{ | ||||
| 			$labels = array_values($labels); | ||||
| 		} | ||||
|  | ||||
| 		// Build the request data. | ||||
| 		$data = json_encode( | ||||
| 			array( | ||||
| 				'title' => $title, | ||||
| 				'assignee' => $assignee, | ||||
| 				'milestone' => $milestone, | ||||
| 				'labels' => $labels, | ||||
| 				'body' => $body | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->post($this->fetchUrl($path), $data); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 201) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to create a comment on an issue. | ||||
| 	 * | ||||
| 	 * @param   string   $user     The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo     The name of the GitHub repository. | ||||
| 	 * @param   integer  $issueId  The issue number. | ||||
| 	 * @param   string   $body     The comment body text. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function createComment($user, $repo, $issueId, $body) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues/' . (int) $issueId . '/comments'; | ||||
|  | ||||
| 		// Build the request data. | ||||
| 		$data = json_encode( | ||||
| 			array( | ||||
| 				'body' => $body, | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->post($this->fetchUrl($path), $data); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 201) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to create a label on a repo. | ||||
| 	 * | ||||
| 	 * @param   string  $user   The name of the owner of the GitHub repository. | ||||
| 	 * @param   string  $repo   The name of the GitHub repository. | ||||
| 	 * @param   string  $name   The label name. | ||||
| 	 * @param   string  $color  The label color. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   12.3 | ||||
| 	 */ | ||||
| 	public function createLabel($user, $repo, $name, $color) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/labels'; | ||||
|  | ||||
| 		// Build the request data. | ||||
| 		$data = json_encode( | ||||
| 			array( | ||||
| 				'name' => $name, | ||||
| 				'color' => $color | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->post($this->fetchUrl($path), $data); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 201) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to delete a comment on an issue. | ||||
| 	 * | ||||
| 	 * @param   string   $user       The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo       The name of the GitHub repository. | ||||
| 	 * @param   integer  $commentId  The id of the comment to delete. | ||||
| 	 * | ||||
| 	 * @return  void | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function deleteComment($user, $repo, $commentId) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues/comments/' . (int) $commentId; | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->delete($this->fetchUrl($path)); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 204) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to delete a label on a repo. | ||||
| 	 * | ||||
| 	 * @param   string  $user   The name of the owner of the GitHub repository. | ||||
| 	 * @param   string  $repo   The name of the GitHub repository. | ||||
| 	 * @param   string  $label  The label name. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   12.3 | ||||
| 	 */ | ||||
| 	public function deleteLabel($user, $repo, $label) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/labels/' . $label; | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->delete($this->fetchUrl($path)); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 204) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to update an issue. | ||||
| 	 * | ||||
| 	 * @param   string   $user       The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo       The name of the GitHub repository. | ||||
| 	 * @param   integer  $issueId    The issue number. | ||||
| 	 * @param   string   $state      The optional new state for the issue. [open, closed] | ||||
| 	 * @param   string   $title      The title of the new issue. | ||||
| 	 * @param   string   $body       The body text for the new issue. | ||||
| 	 * @param   string   $assignee   The login for the GitHub user that this issue should be assigned to. | ||||
| 	 * @param   integer  $milestone  The milestone to associate this issue with. | ||||
| 	 * @param   array    $labels     The labels to associate with this issue. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function edit($user, $repo, $issueId, $state = null, $title = null, $body = null, $assignee = null, $milestone = null, array $labels = null) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues/' . (int) $issueId; | ||||
|  | ||||
| 		// Craete the data object. | ||||
| 		$data = new stdClass; | ||||
|  | ||||
| 		// If a title is set add it to the data object. | ||||
| 		if (isset($title)) | ||||
| 		{ | ||||
| 			$data->title = $title; | ||||
| 		} | ||||
|  | ||||
| 		// If a body is set add it to the data object. | ||||
| 		if (isset($body)) | ||||
| 		{ | ||||
| 			$data->body = $body; | ||||
| 		} | ||||
|  | ||||
| 		// If a state is set add it to the data object. | ||||
| 		if (isset($state)) | ||||
| 		{ | ||||
| 			$data->state = $state; | ||||
| 		} | ||||
|  | ||||
| 		// If an assignee is set add it to the data object. | ||||
| 		if (isset($assignee)) | ||||
| 		{ | ||||
| 			$data->assignee = $assignee; | ||||
| 		} | ||||
|  | ||||
| 		// If a milestone is set add it to the data object. | ||||
| 		if (isset($milestone)) | ||||
| 		{ | ||||
| 			$data->milestone = $milestone; | ||||
| 		} | ||||
|  | ||||
| 		// If labels are set add them to the data object. | ||||
| 		if (isset($labels)) | ||||
| 		{ | ||||
| 			// Ensure that we have a non-associative array. | ||||
| 			if (isset($labels)) | ||||
| 			{ | ||||
| 				$labels = array_values($labels); | ||||
| 			} | ||||
|  | ||||
| 			$data->labels = $labels; | ||||
| 		} | ||||
|  | ||||
| 		// Encode the request data. | ||||
| 		$data = json_encode($data); | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->patch($this->fetchUrl($path), $data); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to update a comment on an issue. | ||||
| 	 * | ||||
| 	 * @param   string   $user       The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo       The name of the GitHub repository. | ||||
| 	 * @param   integer  $commentId  The id of the comment to update. | ||||
| 	 * @param   string   $body       The new body text for the comment. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function editComment($user, $repo, $commentId, $body) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues/comments/' . (int) $commentId; | ||||
|  | ||||
| 		// Build the request data. | ||||
| 		$data = json_encode( | ||||
| 			array( | ||||
| 				'body' => $body | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->patch($this->fetchUrl($path), $data); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to update a label on a repo. | ||||
| 	 * | ||||
| 	 * @param   string  $user   The name of the owner of the GitHub repository. | ||||
| 	 * @param   string  $repo   The name of the GitHub repository. | ||||
| 	 * @param   string  $label  The label name. | ||||
| 	 * @param   string  $name   The label name. | ||||
| 	 * @param   string  $color  The label color. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   12.3 | ||||
| 	 */ | ||||
| 	public function editLabel($user, $repo, $label, $name, $color) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/labels/' . $label; | ||||
|  | ||||
| 		// Build the request data. | ||||
| 		$data = json_encode( | ||||
| 			array( | ||||
| 				'name' => $name, | ||||
| 				'color' => $color | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->patch($this->fetchUrl($path), $data); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to get a single issue. | ||||
| 	 * | ||||
| 	 * @param   string   $user     The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo     The name of the GitHub repository. | ||||
| 	 * @param   integer  $issueId  The issue number. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function get($user, $repo, $issueId) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues/' . (int) $issueId; | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->get($this->fetchUrl($path)); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to get a specific comment on an issue. | ||||
| 	 * | ||||
| 	 * @param   string   $user       The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo       The name of the GitHub repository. | ||||
| 	 * @param   integer  $commentId  The comment id to get. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function getComment($user, $repo, $commentId) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues/comments/' . (int) $commentId; | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->get($this->fetchUrl($path)); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to get the list of comments on an issue. | ||||
| 	 * | ||||
| 	 * @param   string   $user     The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo     The name of the GitHub repository. | ||||
| 	 * @param   integer  $issueId  The issue number. | ||||
| 	 * @param   integer  $page     The page number from which to get items. | ||||
| 	 * @param   integer  $limit    The number of items on a page. | ||||
| 	 * | ||||
| 	 * @return  array | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function getComments($user, $repo, $issueId, $page = 0, $limit = 0) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues/' . (int) $issueId . '/comments'; | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->get($this->fetchUrl($path, $page, $limit)); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to get a specific label on a repo. | ||||
| 	 * | ||||
| 	 * @param   string  $user  The name of the owner of the GitHub repository. | ||||
| 	 * @param   string  $repo  The name of the GitHub repository. | ||||
| 	 * @param   string  $name  The label name to get. | ||||
| 	 * | ||||
| 	 * @return  object | ||||
| 	 * | ||||
| 	 * @since   12.3 | ||||
| 	 */ | ||||
| 	public function getLabel($user, $repo, $name) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/labels/' . $name; | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->get($this->fetchUrl($path)); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to get the list of labels on a repo. | ||||
| 	 * | ||||
| 	 * @param   string  $user  The name of the owner of the GitHub repository. | ||||
| 	 * @param   string  $repo  The name of the GitHub repository. | ||||
| 	 * | ||||
| 	 * @return  array | ||||
| 	 * | ||||
| 	 * @since   12.3 | ||||
| 	 */ | ||||
| 	public function getLabels($user, $repo) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/labels'; | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->get($this->fetchUrl($path)); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to list an authenticated user's issues. | ||||
| 	 * | ||||
| 	 * @param   string   $filter     The filter type: assigned, created, mentioned, subscribed. | ||||
| 	 * @param   string   $state      The optional state to filter requests by. [open, closed] | ||||
| 	 * @param   string   $labels     The list of comma separated Label names. Example: bug,ui,@high. | ||||
| 	 * @param   string   $sort       The sort order: created, updated, comments, default: created. | ||||
| 	 * @param   string   $direction  The list direction: asc or desc, default: desc. | ||||
| 	 * @param   JDate    $since      The date/time since when issues should be returned. | ||||
| 	 * @param   integer  $page       The page number from which to get items. | ||||
| 	 * @param   integer  $limit      The number of items on a page. | ||||
| 	 * | ||||
| 	 * @return  array | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function getList($filter = null, $state = null, $labels = null, $sort = null, $direction = null, JDate $since = null, $page = 0, $limit = 0) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/issues'; | ||||
|  | ||||
| 		// TODO Implement the filtering options. | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->get($this->fetchUrl($path, $page, $limit)); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Method to list issues. | ||||
| 	 * | ||||
| 	 * @param   string   $user       The name of the owner of the GitHub repository. | ||||
| 	 * @param   string   $repo       The name of the GitHub repository. | ||||
| 	 * @param   string   $milestone  The milestone number, 'none', or *. | ||||
| 	 * @param   string   $state      The optional state to filter requests by. [open, closed] | ||||
| 	 * @param   string   $assignee   The assignee name, 'none', or *. | ||||
| 	 * @param   string   $mentioned  The GitHub user name. | ||||
| 	 * @param   string   $labels     The list of comma separated Label names. Example: bug,ui,@high. | ||||
| 	 * @param   string   $sort       The sort order: created, updated, comments, default: created. | ||||
| 	 * @param   string   $direction  The list direction: asc or desc, default: desc. | ||||
| 	 * @param   JDate    $since      The date/time since when issues should be returned. | ||||
| 	 * @param   integer  $page       The page number from which to get items. | ||||
| 	 * @param   integer  $limit      The number of items on a page. | ||||
| 	 * | ||||
| 	 * @return  array | ||||
| 	 * | ||||
| 	 * @since   11.3 | ||||
| 	 */ | ||||
| 	public function getListByRepository($user, $repo, $milestone = null, $state = null, $assignee = null, $mentioned = null, $labels = null, | ||||
| 		$sort = null, $direction = null, JDate $since = null, $page = 0, $limit = 0) | ||||
| 	{ | ||||
| 		// Build the request path. | ||||
| 		$path = '/repos/' . $user . '/' . $repo . '/issues'; | ||||
|  | ||||
| 		$uri = new JUri($this->fetchUrl($path, $page, $limit)); | ||||
|  | ||||
| 		if ($milestone) | ||||
| 		{ | ||||
| 			$uri->setVar('milestone', $milestone); | ||||
| 		} | ||||
|  | ||||
| 		if ($state) | ||||
| 		{ | ||||
| 			$uri->setVar('state', $state); | ||||
| 		} | ||||
|  | ||||
| 		if ($assignee) | ||||
| 		{ | ||||
| 			$uri->setVar('assignee', $assignee); | ||||
| 		} | ||||
|  | ||||
| 		if ($mentioned) | ||||
| 		{ | ||||
| 			$uri->setVar('mentioned', $mentioned); | ||||
| 		} | ||||
|  | ||||
| 		if ($labels) | ||||
| 		{ | ||||
| 			$uri->setVar('labels', $labels); | ||||
| 		} | ||||
|  | ||||
| 		if ($sort) | ||||
| 		{ | ||||
| 			$uri->setVar('sort', $sort); | ||||
| 		} | ||||
|  | ||||
| 		if ($direction) | ||||
| 		{ | ||||
| 			$uri->setVar('direction', $direction); | ||||
| 		} | ||||
|  | ||||
| 		if ($since) | ||||
| 		{ | ||||
| 			$uri->setVar('since', $since->toISO8601()); | ||||
| 		} | ||||
|  | ||||
| 		// Send the request. | ||||
| 		$response = $this->client->get((string) $uri); | ||||
|  | ||||
| 		// Validate the response code. | ||||
| 		if ($response->code != 200) | ||||
| 		{ | ||||
| 			// Decode the error response and throw an exception. | ||||
| 			$error = json_decode($response->body); | ||||
| 			throw new DomainException($error->message, $response->code); | ||||
| 		} | ||||
|  | ||||
| 		return json_decode($response->body); | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 alazhar
					alazhar