HubResource::getFeedUnhabred()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 7
ccs 4
cts 4
cp 1
rs 9.4285
cc 1
eloc 4
nc 1
nop 2
crap 1
1
<?php
2
3
namespace Habrahabr\Api\Resources;
4
5
use Habrahabr\Api\Exception\IncorrectUsageException;
6
7
/**
8
 * Class HubResource
9
 *
10
 * Ресурс работы с хабами
11
 *
12
 * @package Habrahabr\Api\Resources
13
 * @version 0.1.5
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 HubResource extends AbstractResource implements ResourceInterface
23
{
24
    /**
25
     * Возвращает информацию о хабе по алиасу
26
     *
27
     * @param string $alias Алиаса хаба
28
     * @return array
29
     * @throws IncorrectUsageException
30
     */
31 2
    public function getHubInfo($alias)
32
    {
33 2
        $this->checkAliasName($alias);
34
35 1
        return $this->adapter->get(sprintf('/hub/%s/info', $alias));
36
    }
37
38
    /**
39
     * Возвращает "Захабренные" посты связаные с хабом
40
     *
41
     * @param string $alias Алиаса хаба
42
     * @param int $page Номер страницы
43
     * @return array
44
     * @throws IncorrectUsageException
45
     */
46 2
    public function getFeedHabred($alias, $page = 1)
47
    {
48 2
        $this->checkAliasName($alias);
49 1
        $this->checkPageNumber($page);
50
51 1
        return $this->adapter->get(sprintf('/hub/%s/habred?page=%d', $alias, $page));
52
    }
53
54
    /**
55
     * Возвращает "Отхабренные" посты связаные с хабом
56
     *
57
     * @param string $alias Алиаса хаба
58
     * @param int $page Номер страницы
59
     * @return array
60
     * @throws IncorrectUsageException
61
     */
62 2
    public function getFeedUnhabred($alias, $page = 1)
63
    {
64 2
        $this->checkAliasName($alias);
65 1
        $this->checkPageNumber($page);
66
67 1
        return $this->adapter->get(sprintf('/hub/%s/unhabred?page=%d', $alias, $page));
68
    }
69
70
    /**
71
     * Возвращает "Новые" посты связаные с хабом
72
     *
73
     * @param string $alias Алиаса хаба
74
     * @param int $page Номер страницы
75
     * @return array
76
     * @throws IncorrectUsageException
77
     */
78 2
    public function getFeedNew($alias, $page = 1)
79
    {
80 2
        $this->checkAliasName($alias);
81 1
        $this->checkPageNumber($page);
82
83 1
        return $this->adapter->get(sprintf('/hub/%s/new?page=%d', $alias, $page));
84
    }
85
86
    /**
87
     * Возвращает список хабов
88
     *
89
     * @param int $page Номер страницы
90
     * @return array
91
     * @throws IncorrectUsageException
92
     */
93 2
    public function getHubList($page = 1)
94
    {
95 2
        $this->checkPageNumber($page);
96
97 1
        return $this->adapter->get(sprintf('/hubs?page=%d', $page));
98
    }
99
100
    /**
101
     * Подписаться на хаб
102
     *
103
     * @param string $alias Алиаса хаба
104
     * @return array
105
     * @throws IncorrectUsageException
106
     */
107 2
    public function subscribeHub($alias)
108
    {
109 2
        $this->checkAliasName($alias);
110
111 1
        return $this->adapter->put(sprintf('/hub/%s', $alias));
112
    }
113
114
    /**
115
     * Отписаться от хаба
116
     *
117
     * @param string $alias Алиаса хаба
118
     * @return array
119
     * @throws IncorrectUsageException
120
     */
121 2
    public function unsubscribeHub($alias)
122
    {
123 2
        $this->checkAliasName($alias);
124
125 1
        return $this->adapter->delete(sprintf('/hub/%s', $alias));
126
    }
127
}
128