UserService::getBlockList()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
ccs 3
cts 3
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Aosmak\Laravel\Layer\Sdk\Services\Subservices;
4
5
use Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface;
6
use Aosmak\Laravel\Layer\Sdk\Services\Subservices\Interfaces\UserServiceInterface;
7
8
/**
9
 * Class UserService
10
 * @package namespace Aosmak\Laravel\Layer\Sdk\Services\Subservices
11
 */
12
class UserService extends BaseService implements UserServiceInterface
13
{
14
    /**
15
     * Create a user
16
     *
17
     * @param array $data user data
18
     * @param string $userId user ID
19
     *
20
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
21
     */
22 7
    public function create(array $data, string $userId): ResponseInterface
23
    {
24 7
        return $this->getRequestService()
25 7
            ->makePostRequest($this->getRouter()->getShortUrl('users', $userId, 'identity'), $data);
26
    }
27
28
    /**
29
     * Update user details
30
     *
31
     * @param array $data user data
32
     * @param string $userId user ID
33
     *
34
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
35
     */
36 2
    public function update(array $data, string $userId): ResponseInterface
37
    {
38 2
        return $this->getRequestService()
39 2
            ->makePatchRequest($this->getRouter()->getShortUrl('users', $userId, 'identity'), $data);
40
    }
41
42
    /**
43
     * Replace a user
44
     *
45
     * @param array $data user data
46
     * @param string $userId user ID
47
     *
48
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
49
     */
50 2
    public function replace(array $data, string $userId): ResponseInterface
51
    {
52 2
        return $this->getRequestService()
53 2
            ->makePutRequest($this->getRouter()->getShortUrl('users', $userId, 'identity'), $data);
54
    }
55
56
    /**
57
     * Get user details
58
     *
59
     * @param string $userId user ID
60
     *
61
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
62
     */
63 7
    public function get(string $userId): ResponseInterface
64
    {
65 7
        return $this->getRequestService()
66 7
            ->makeGetRequest($this->getRouter()->getShortUrl('users', $userId, 'identity'));
67
    }
68
69
    /**
70
     * Delete a user
71
     *
72
     * @param string $userId user ID
73
     *
74
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
75
     */
76 4
    public function delete(string $userId): ResponseInterface
77
    {
78 4
        return $this->getRequestService()
79 4
            ->makeDeleteRequest($this->getRouter()->getShortUrl('users', $userId, 'identity'));
80
    }
81
82
    /**
83
     * Create a badge
84
     *
85
     * @param array $data badge data
86
     * @param string $userId user ID
87
     *
88
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
89
     */
90 2
    public function createBadge(array $data, string $userId): ResponseInterface
91
    {
92 2
        return $this->getRequestService()
93 2
            ->makePutRequest($this->getRouter()->getShortUrl('users', $userId, 'badge'), $data);
94
    }
95
96
    /**
97
     * Get user`s badges
98
     *
99
     * @param string $userId user ID
100
     *
101
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
102
     */
103 2
    public function getBadges(string $userId): ResponseInterface
104
    {
105 2
        return $this->getRequestService()
106 2
            ->makeGetRequest($this->getRouter()->getShortUrl('users', $userId, 'badge'));
107
    }
108
109
    /**
110
     * Update block list
111
     *
112
     * @param array $data user data
113
     * @param string $userId user ID
114
     *
115
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
116
     */
117 2
    public function updateBlockList(array $data, string $userId): ResponseInterface
118
    {
119 2
        return $this->getRequestService()
120 2
            ->makePatchRequest($this->getRouter()->getShortUrl('users', $userId), $data);
121
    }
122
123
    /**
124
     * Get block list
125
     *
126
     * @param string $userId user ID
127
     *
128
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
129
     */
130 2
    public function getBlockList(string $userId): ResponseInterface
131
    {
132 2
        return $this->getRequestService()
133 2
            ->makeGetRequest($this->getRouter()->getShortUrl('users', $userId, 'blocks'));
134
    }
135
136
    /**
137
     * Set suspended property
138
     *
139
     * @param string $userId user ID
140
     * @param bool $value user ID
141
     *
142
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
143
     */
144 2
    public function suspend(string $userId, bool $value): ResponseInterface
145
    {
146
        $data = [
147
            [
148 2
                'operation' => 'set',
149 2
                'property'  => 'suspended',
150 2
                'value'     => $value
151
            ]
152
        ];
153
154 2
        return $this->getRequestService()
155 2
            ->makePatchRequest($this->getRouter()->getShortUrl('users', $userId), $data);
156
    }
157
158
    /**
159
     * Set TTL in seconds
160
     *
161
     * @param bool $value user ID
162
     *
163
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
164
     */
165 2
    public function setTtl(int $value): ResponseInterface
166
    {
167
        $data = [
168
            [
169 2
                'operation' => 'set',
170 2
                'property'  => 'session_ttl_in_seconds',
171 2
                'value'     => $value
172
            ]
173
        ];
174
175 2
        return $this->getRequestService()
176 2
            ->makePatchRequest($this->getRouter()->genereteURL('', []), $data);
177
    }
178
179
    /**
180
     * Get user status
181
     *
182
     * @param string $userId user ID
183
     *
184
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
185
     */
186 2
    public function getUserStatus(string $userId): ResponseInterface
187
    {
188 2
        return $this->getRequestService()
189 2
            ->makeGetRequest($this->getRouter()->getShortUrl('users', $userId));
190
    }
191
192
    /**
193
     * Delete user sessions
194
     *
195
     * @param string $userId user ID
196
     *
197
     * @return \Aosmak\Laravel\Layer\Sdk\Models\ResponseInterface
198
     */
199 2
    public function deleteSessions(string $userId): ResponseInterface
200
    {
201 2
        return $this->getRequestService()
202 2
            ->makeDeleteRequest($this->getRouter()->getShortUrl('users', $userId, 'sessions'));
203
    }
204
}
205