Completed
Push — master ( 605499...e561d3 )
by dotzero
02:33
created

UserResource::voteKarmaPlus()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 6
Bugs 0 Features 0
Metric Value
c 6
b 0
f 0
dl 0
loc 6
ccs 0
cts 0
cp 0
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
crap 2
1
<?php
2
3
namespace Habrahabr\Api\Resources;
4
5
use Habrahabr\Api\Exception\IncorrectUsageException;
6
7
/**
8
 * Class UserResource
9
 *
10
 * Ресурс работы с пользователями
11
 *
12
 * @package Habrahabr\Api\Resources
13
 * @version 0.0.8
14
 * @author thematicmedia <[email protected]>
15
 * @link https://tmtm.ru/
16
 * @link https://habrahabr.ru/
17
 * @link https://github.com/thematicmedia/habrahabr_api
18
 *
19
 * For the full copyright and license information, please view the LICENSE
20
 * file that was distributed with this source code.
21
 */
22
class UserResource extends AbstractResource implements ResourceInterface
23
{
24
    /**
25
     * Возвращает профиль пользователя API ключа
26
     *
27
     * @return array
28
     */
29 1
    public function getUserCurrent()
30
    {
31 1
        return $this->getUser('me');
32
    }
33
34
    /**
35
     * Возвращает профиль пользователя по логину
36
     *
37
     * @param string $login Логин пользователя на сайте
38
     * @return array
39
     * @throws IncorrectUsageException
40
     */
41 3
    public function getUser($login)
42
    {
43 3
        $this->checkAliasName($login);
44
45 2
        return $this->adapter->get(sprintf('/users/%s', $login));
46
    }
47
48
    /**
49
     * Возвращает список пользователей
50
     *
51
     * @param int $page Номер страницы
52
     * @return array
53
     * @throws IncorrectUsageException
54
     */
55 1
    public function getUsersList($page = 1)
56
    {
57 1
        $this->checkPageNumber($page);
58
59 1
        return $this->adapter->get(sprintf('/users?page=%d', $page));
60
    }
61
62
    /**
63
     * Возвращает комментарии пользователя по логину
64
     *
65
     * @param string $login Логин пользователя на сайте
66
     * @param int $page Номер страницы
67
     * @return array
68
     * @throws IncorrectUsageException
69
     */
70 1
    public function getUserComments($login, $page = 1)
71
    {
72 1
        $this->checkAliasName($login);
73 1
        $this->checkPageNumber($page);
74
75 1
        return $this->adapter->get(sprintf('/users/%s/comments?page=%d', $login, $page));
76
    }
77
78
    /**
79
     * Возвращает посты пользователя по логину
80
     *
81
     * @param string $login Логин пользователя на сайте
82
     * @param int $page Номер страницы
83
     * @return array
84
     * @throws IncorrectUsageException
85
     */
86 1
    public function getUserPosts($login, $page = 1)
87
    {
88 1
        $this->checkAliasName($login);
89 1
        $this->checkPageNumber($page);
90
91 1
        return $this->adapter->get(sprintf('/users/%s/posts?page=%d', $login, $page));
92
    }
93
94
    /**
95
     * Возвращает хабы на которые подписан пользователь
96
     *
97
     * @param string $login Логин пользователя на сайте
98
     * @return array
99
     * @throws IncorrectUsageException
100
     */
101 1
    public function getUserHubs($login)
102
    {
103 1
        $this->checkAliasName($login);
104
105 1
        return $this->adapter->get(sprintf('/users/%s/hubs', $login));
106
    }
107
108
    /**
109
     * Возвращает компании в которых работает пользователь
110
     *
111
     * @param string $login Логин пользователя на сайте
112
     * @return array
113
     * @throws IncorrectUsageException
114
     */
115 1
    public function getUserCompanies($login)
116
    {
117 1
        $this->checkAliasName($login);
118
119 1
        return $this->adapter->get(sprintf('/users/%s/companies', $login));
120
    }
121
122
    /**
123
     * Возвращает список подписчиков пользователя по логину
124
     *
125
     * @param string $login Логин пользователя на сайте
126
     * @param int $page Номер страницы
127
     * @return array
128
     * @throws IncorrectUsageException
129
     */
130 1
    public function getUserFollowers($login, $page = 1)
131
    {
132 1
        $this->checkAliasName($login);
133 1
        $this->checkPageNumber($page);
134
135 1
        return $this->adapter->get(sprintf('/users/%s/followers?page=%d', $login, $page));
136
    }
137
138
    /**
139
     * Возвращает список на кого подписан пользователь по логину
140
     *
141
     * @param string $login Логин пользователя на сайте
142
     * @param int $page Номер страницы
143
     * @return array
144
     * @throws IncorrectUsageException
145
     */
146 1
    public function getUserFollowed($login, $page = 1)
147
    {
148 1
        $this->checkAliasName($login);
149 1
        $this->checkPageNumber($page);
150
151 1
        return $this->adapter->get(sprintf('/users/%s/followed?page=%d', $login, $page));
152
    }
153
154
    /**
155
     * Плюсовать карму пользователя по логину
156
     *
157
     * Этот метод может быть предоставлен дополнительно, по запросу
158
     * https://habrahabr.ru/feedback/
159
     *
160
     * @deprecated
161
     * @param string $login Логин пользователя на сайте
162
     * @return array
163
     * @throws IncorrectUsageException
164
     */
165
    public function voteKarmaPlus($login)
166
    {
167
        $this->checkAliasName($login);
168
169
        return $this->adapter->put(sprintf('/users/%s/vote', $login));
170
    }
171
172
    /**
173
     * Минусовать карму пользователя по логину
174
     *
175
     * Этот метод может быть предоставлен дополнительно, по запросу
176
     * https://habrahabr.ru/feedback/
177
     *
178
     * @deprecated
179
     * @param string $login Логин пользователя на сайте
180
     * @return array
181
     */
182
    public function voteKarmaMinus($login)
183
    {
184
        return $this->adapter->delete(sprintf('/users/%s/vote', $login));
185
    }
186
187
    /**
188
     * Возвращает список "избранных" постов пользователя по логину
189
     *
190
     * @param string $login Логин пользователя на сайте
191
     * @param int $page Номер страницы
192
     * @return array
193
     * @throws IncorrectUsageException
194
     */
195 1
    public function getUserFavoritesPost($login, $page = 1)
196
    {
197 1
        $this->checkPageNumber($page);
198
199 1
        return $this->adapter->get(sprintf('/users/%s/favorites/posts?page=%d', $login, $page));
200
    }
201
202
    /**
203
     * Возвращает список "избранных" комментариев пользователя по логину
204
     *
205
     * @param string $login Логин пользователя на сайте
206
     * @param int $page Номер страницы
207
     * @return array
208
     * @throws IncorrectUsageException
209
     */
210 1
    public function getUserFavoritesComments($login, $page = 1)
211
    {
212 1
        $this->checkPageNumber($page);
213
214 1
        return $this->adapter->get(sprintf('/users/%s/favorites/comments?page=%d', $login, $page));
215
    }
216
}
217