Completed
Push — master ( 2a28c4...4998b6 )
by dotzero
03:11
created

PollResource::getPoll()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Habrahabr\Api\Resources;
4
5
use Habrahabr\Api\Exception\IncorrectUsageException;
6
7
/**
8
 * Class PollResource
9
 *
10
 * Ресурс работы с опросами
11
 *
12
 * @package Habrahabr\Api\Resources
13
 * @version 0.1.2
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 PollResource extends AbstractResource implements ResourceInterface
23
{
24
    /**
25
     * Возвращает опрос по номеру
26
     *
27
     * @param int $poll_id Номер опроса
28
     * @return array
29
     * @throws IncorrectUsageException
30
     */
31 2
    public function getPoll($poll_id)
32
    {
33 2
        $this->checkId($poll_id);
34
35 1
        return $this->adapter->get(sprintf('/polls/%d', $poll_id));
36
    }
37
38
    /**
39
     * Голосование в опросе за один или несколько варинатов ответа
40
     *
41
     * Этот метод может быть предоставлен дополнительно, по запросу
42
     * https://habrahabr.ru/feedback/
43
     * 
44
     * @param int $poll_id Номер опроса
45
     * @param array|int $votes Номер или номера варинатов ответа
46
     *
47
     * @return mixed
48
     * @throws IncorrectUsageException
49
     */
50 3
    public function vote($poll_id, $votes = [])
51
    {
52 3
        $this->checkId($poll_id);
53
54 2
        if (!is_array($votes)) {
55 1
            $votes = [$votes];
56 1
        }
57
58 2
        array_map([$this, 'checkId'], $votes);
59
60 2
        return $this->adapter->put(sprintf('/polls/%d/vote', $poll_id), ['id' => $votes]);
61
    }
62
}
63