Users::getSingleUser()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
namespace FlexyProject\GitHub\Receiver;
3
4
use Symfony\Component\HttpFoundation\Request;
5
6
/**
7
 * This class give you access to the Users API.
8
 *
9
 * @link    https://developer.github.com/v3/users/
10
 * @package FlexyProject\GitHub\Receiver
11
 */
12
class Users extends AbstractReceiver
13
{
14
15
    /** Available sub-Receiver */
16
    const EMAILS      = 'Emails';
17
    const FOLLOWERS   = 'Followers';
18
    const PUBLIC_KEYS = 'PublicKeys';
19
20
    /**
21
     * Get a single user
22
     *
23
     * @link https://developer.github.com/v3/users/#get-a-single-user
24
     *
25
     * @param string $username
26
     *
27
     * @return array
28
     * @throws \Exception
29
     */
30
    public function getSingleUser(string $username): array
31
    {
32
        return $this->getApi()->request($this->getApi()->sprintf('/users/:username', $username));
33
    }
34
35
    /**
36
     * Get the authenticated user
37
     *
38
     * @link https://developer.github.com/v3/users/#get-the-authenticated-user
39
     * @return array
40
     * @throws \Exception
41
     */
42
    public function getUser(): array
43
    {
44
        return $this->getApi()->request($this->getApi()->sprintf('/user'));
45
    }
46
47
    /**
48
     * Update the authenticated user
49
     *
50
     * @link https://developer.github.com/v3/users/#update-the-authenticated-user
51
     *
52
     * @param string $name
53
     * @param string $email
54
     * @param string $blog
55
     * @param string $company
56
     * @param string $location
57
     * @param bool   $hireable
58
     * @param string $bio
59
     *
60
     * @return array
61
     * @throws \Exception
62
     */
63 View Code Duplication
    public function updateUser(string $name = null, string $email = null, string $blog = null, string $company = null,
0 ignored issues
show
Duplication introduced by
This method 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...
64
                               string $location = null, bool $hireable = false, string $bio = null): array
65
    {
66
        return $this->getApi()->request($this->getApi()->sprintf('/user'), Request::METHOD_PATCH, [
67
                'name'     => $name,
68
                'email'    => $email,
69
                'blog'     => $blog,
70
                'company'  => $company,
71
                'location' => $location,
72
                'hireable' => $hireable,
73
                'bio'      => $bio
74
            ]);
75
    }
76
77
    /**
78
     * Get all users
79
     *
80
     * @link https://developer.github.com/v3/users/#get-all-users
81
     *
82
     * @param string $since
83
     *
84
     * @return array
85
     * @throws \Exception
86
     */
87
    public function getAllUsers(string $since = null): array
88
    {
89
        return $this->getApi()->request($this->getApi()
90
                                             ->sprintf('/users?:args', http_build_query(['since' => $since])));
91
    }
92
}