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

Subscription::getSubscribedUser()   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
 * Subscription 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 Subscription
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_CHANNEL_SUBSCRIPTIONS = 'channels/%s/subscriptions';
21
    const URI_CHANNEL_SUBSCRIPTIONS_USER = 'channels/%s/subscriptions/%s';
22
    const URI_USER_SUBSCRIPTIONS_CHANNEL = 'users/%s/subscriptions/%s';
23
24
    public function __construct(TwitchRequest $request)
25
    {
26
        $this->request = $request;
27
    }
28
29
    /**
30
     * @description Returns an array of subscriptions who are subscribed to specified channel
31
     *  - requires scope 'channel_subscriptions'
32
     * @see https://github.com/justintv/Twitch-API/blob/master/v3_resources/subscriptions.md#get-channelschannelsubscriptions
33
     * @param string $channel
34
     * @param string $queryString
35
     * @return \stdClass
36
     * @throws TwitchException
37
     */
38
    public function getSubscriptions($channel, $queryString)
39
    {
40
        return $this->request->request(sprintf(self::URI_CHANNEL_SUBSCRIPTIONS, $channel) . $queryString);
41
    }
42
43
    /**
44
     * Returns user object if that user is subscribed
45
     *  - requires scope 'channel_check_subscription' for channel
46
     * @see https://github.com/justintv/Twitch-API/blob/master/v3_resources/subscriptions.md#get-channelschannelsubscriptionsuser
47
     * @param string $channel
48
     * @param string $user
49
     * @param string $queryString
50
     * @return \stdClass
51
     * @throws TwitchException
52
     */
53
    public function getSubscribedUser($channel, $user, $queryString)
54
    {
55
        return $this->request->request(sprintf(self::URI_CHANNEL_SUBSCRIPTIONS_USER, $channel, $user) . $queryString);
56
    }
57
58
    /**
59
     * Returns a channel object that user subscribes to
60
     *  - requires scope 'user_subscriptions' for user
61
     * @see https://github.com/justintv/Twitch-API/blob/master/v3_resources/subscriptions.md#get-usersusersubscriptionschannel
62
     * @param string $user
63
     * @param string $channel
64
     * @param string $queryString
65
     * @return \stdClass
66
     * @throws TwitchException
67
     */
68
    public function getSubscribedToChannel($user, $channel, $queryString)
69
    {
70
        return $this->request->request(sprintf(self::URI_USER_SUBSCRIPTIONS_CHANNEL, $user, $channel) . $queryString);
71
    }
72
}
73