151 lines
3.5 KiB
PHP
151 lines
3.5 KiB
PHP
<?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 References class for the Joomla Platform.
|
||
*
|
||
* @package Joomla.Platform
|
||
* @subpackage GitHub
|
||
* @since 12.3
|
||
*/
|
||
class JGithubUsers extends JGithubObject
|
||
{
|
||
/**
|
||
* Get a single user.
|
||
*
|
||
* @param string $user The users login name.
|
||
*
|
||
* @throws DomainException
|
||
*
|
||
* @return mixed
|
||
*/
|
||
public function getUser($user)
|
||
{
|
||
// Build the request path.
|
||
$path = '/users/' . $user;
|
||
|
||
// 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);
|
||
}
|
||
|
||
/**
|
||
* Get the current authenticated user.
|
||
*
|
||
* @throws DomainException
|
||
*
|
||
* @return mixed
|
||
*/
|
||
public function getAuthenticatedUser()
|
||
{
|
||
// Build the request path.
|
||
$path = '/user';
|
||
|
||
// 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);
|
||
}
|
||
|
||
/**
|
||
* Update a user.
|
||
*
|
||
* @param string $name The full name
|
||
* @param string $email The email
|
||
* @param string $blog The blog
|
||
* @param string $company The company
|
||
* @param string $location The location
|
||
* @param string $hireable If he is unemplayed :P
|
||
* @param string $bio The biometrical DNA fingerprint (or smthng...)
|
||
*
|
||
* @throws DomainException
|
||
*
|
||
* @return mixed
|
||
*/
|
||
public function updateUser($name = '', $email = '', $blog = '', $company = '', $location = '', $hireable = '', $bio = '')
|
||
{
|
||
$data = array(
|
||
'name' => $name,
|
||
'email' => $email,
|
||
'blog' => $blog,
|
||
'company' => $company,
|
||
'location' => $location,
|
||
'hireable' => $hireable,
|
||
'bio' => $bio
|
||
);
|
||
|
||
// Build the request path.
|
||
$path = '/user';
|
||
|
||
// Send the request.
|
||
$response = $this->client->patch($this->fetchUrl($path), json_encode($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);
|
||
}
|
||
|
||
/**
|
||
* Get all users.
|
||
*
|
||
* This provides a dump of every user, in the order that they signed up for GitHub.
|
||
*
|
||
* @param integer $since The integer ID of the last User that you’ve seen.
|
||
*
|
||
* @throws DomainException
|
||
* @return mixed
|
||
*/
|
||
public function getUsers($since = 0)
|
||
{
|
||
// Build the request path.
|
||
$path = '/users';
|
||
|
||
$path .= ($since) ? '?since=' . $since : '';
|
||
|
||
// 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);
|
||
}
|
||
|
||
}
|