Completed
Push — develop ( 2b0d56...088525 )
by Josef
02:15
created

Block::removeTarget()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 4
Ratio 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 4
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 3
1
<?php
2
3
namespace jofner\SDK\TwitchTV\Methods;
4
5
use jofner\SDK\TwitchTV\TwitchException;
6
use jofner\SDK\TwitchTV\TwitchRequest;
7
8
/**
9
 * Block method class for TwitchTV API SDK for PHP
10
 *
11
 * @author Josef Ohnheiser <[email protected]>
12
 * @license https://github.com/jofner/Twitch-SDK/blob/master/LICENSE.md MIT
13
 * @homepage https://github.com/jofner/Twitch-SDK
14
 */
15 View Code Duplication
class Block
1 ignored issue
show
Duplication introduced by
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
16
{
17
    /** @var TwitchRequest */
18
    protected $request;
19
20
    const URI_BLOCK_USER = 'users/%s/blocks';
21
    const URI_BLOCK_TARGET = 'users/%s/blocks/%s';
22
23
    /**
24
     * Block constructor
25
     * @param TwitchRequest $request
26
     */
27
    public function __construct(TwitchRequest $request)
28
    {
29
        $this->request = $request;
30
    }
31
32
    /**
33
     * Returns a list of blocks
34
     *  - requires scope 'user_blocks_read'
35
     * @see https://github.com/justintv/Twitch-API/blob/master/v3_resources/blocks.md#get-usersuserblocks
36
     * @param string $user
37
     * @param string $queryString
38
     * @return \stdClass
39
     * @throws TwitchException
40
     */
41
    public function getBlocks($user, $queryString)
42
    {
43
        return $this->request->request(sprintf(self::URI_BLOCK_USER, $user) . $queryString);
44
    }
45
46
    /**
47
     * Adds $target to $user block list
48
     *  - requires scope 'user_blocks_edit'
49
     * @see https://github.com/justintv/Twitch-API/blob/master/v3_resources/blocks.md#put-usersuserblockstarget
50
     * @param string $user
51
     * @param string $target
52
     * @param string $queryString
53
     * @return \stdClass
54
     * @throws TwitchException
55
     */
56
    public function blockTarget($user, $target, $queryString)
57
    {
58
        return $this->request->request(sprintf(self::URI_BLOCK_TARGET, $user, $target) . $queryString, 'PUT');
59
    }
60
61
    /**
62
     * Removes $target from $user block list
63
     *  - requires scope 'user_blocks_edit'
64
     * @see https://github.com/justintv/Twitch-API/blob/master/v3_resources/blocks.md#delete-usersuserblockstarget
65
     * @param string $user
66
     * @param string $target
67
     * @param string $queryString
68
     * @return \stdClass
69
     * @throws TwitchException
70
     */
71
    public function removeTarget($user, $target, $queryString)
72
    {
73
        return $this->request->request(sprintf(self::URI_BLOCK_TARGET, $user, $target) . $queryString, 'DELETE');
74
    }
75
}
76