2015-03-23 23:41:41 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Skobkin\Bundle\PointToolsBundle\Service;
|
|
|
|
|
|
|
|
use Skobkin\Bundle\PointToolsBundle\Entity\User;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Basic Point.im user API functions from /api/user/*
|
|
|
|
*/
|
|
|
|
class UserApi extends AbstractApi
|
|
|
|
{
|
|
|
|
const PATH_USER_INFO = '/api/user/%s';
|
|
|
|
const PATH_USER_SUBSCRIPTIONS = '/api/user/%s/subscriptions';
|
|
|
|
const PATH_USER_SUBSCRIBERS = '/api/user/%s/subscribers';
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
/**
|
|
|
|
* @var string Base URL for user avatars
|
|
|
|
*/
|
|
|
|
protected $avatarsBaseUrl = '//i.point.im/a/';
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
public function getName()
|
|
|
|
{
|
|
|
|
return 'skobkin_point_tools_api_user';
|
|
|
|
}
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
/**
|
|
|
|
* Get user subscribers by his/her name
|
2015-03-27 19:49:21 +00:00
|
|
|
*
|
2015-03-23 23:41:41 +00:00
|
|
|
* @param string $login
|
|
|
|
* @return User[]
|
|
|
|
*/
|
|
|
|
public function getUserSubscribersByLogin($login)
|
|
|
|
{
|
|
|
|
$response = $this->sendGetRequest(self::PATH_USER_SUBSCRIBERS, [$login]);
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
$body = $response->getBody(true);
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
// @todo use JMSSerializer
|
|
|
|
$data = json_decode($body);
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
$users = [];
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
if (is_array($data)) {
|
|
|
|
foreach ($data as $apiUser) {
|
|
|
|
$user = new User();
|
|
|
|
$user->setId($apiUser->id);
|
|
|
|
$user->setLogin($apiUser->login);
|
|
|
|
$user->setName($apiUser->name);
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
$users[] = $user;
|
|
|
|
}
|
|
|
|
}
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
return $users;
|
|
|
|
}
|
|
|
|
}
|