Completed
Push — master ( ff20d9...ed19b7 )
by Christian
15:48
created

AuthJson   A

Complexity

Total Complexity 17

Size/Duplication

Total Lines 271
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 17
lcom 1
cbo 1
dl 0
loc 271
rs 10
c 0
b 0
f 0

17 Methods

Rating   Name   Duplication   Size   Complexity  
A setGithubOAuthToken() 0 6 1
A getGithubOAuthToken() 0 4 1
A removeGithubOAuthToken() 0 6 1
A setGitlabOAuthToken() 0 6 1
A getGitlabOAuthToken() 0 4 1
A removeGitlabOAuthToken() 0 6 1
A setGitlabPrivateToken() 0 6 1
A getGitlabPrivateToken() 0 4 1
A removeGitlabPrivateToken() 0 6 1
A setBitbucketOAuth() 0 9 1
A getBitbucketOAuthKey() 0 4 1
A getBitbucketOAuthSecret() 0 4 1
A removeBitbucketOAuth() 0 6 1
A setHttpBasic() 0 9 1
A getHttpBasicUser() 0 4 1
A getHttpBasicPassword() 0 4 1
A removeHttpBasic() 0 6 1
1
<?php
2
3
/**
4
 * This file is part of tenside/core.
5
 *
6
 * (c) Christian Schiffler <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 *
11
 * This project is provided in good faith and hope to be usable by anyone.
12
 *
13
 * @package    tenside/core
14
 * @author     Christian Schiffler <[email protected]>
15
 * @copyright  2015 Christian Schiffler <[email protected]>
16
 * @license    https://github.com/tenside/core/blob/master/LICENSE MIT
17
 * @link       https://github.com/tenside/core
18
 * @filesource
19
 */
20
21
namespace Tenside\Core\Composer;
22
23
use Tenside\Core\Util\JsonFile;
24
25
/**
26
 * This class abstracts the auth.json file manipulation.
27
 */
28
class AuthJson extends JsonFile
29
{
30
    /**
31
     * Const for github oauth tokens.
32
     */
33
    const GITHUB_OAUTH_KEY = 'github-oauth';
34
35
    /**
36
     * Const for gitlab oauth tokens.
37
     */
38
    const GITLAB_OAUTH_KEY = 'gitlab-oauth';
39
40
    /**
41
     * Const for gitlab private tokens.
42
     */
43
    const GITLAB_PRIVATE_KEY = 'gitlab-token';
44
45
    /**
46
     * Const for bitbucket tokens.
47
     */
48
    const BITBUCKET_OAUTH_KEY = 'bitbucket-oauth';
49
50
    /**
51
     * Const for htt-basic auth.
52
     */
53
    const HTTP_BASIC_KEY = 'http-basic';
54
55
    /**
56
     * Set a github OAuth token.
57
     *
58
     * @param string $token  The token.
59
     *
60
     * @param string $domain The domain.
61
     *
62
     * @return AuthJson
63
     */
64
    public function setGithubOAuthToken($token, $domain = 'github.com')
65
    {
66
        $this->set(self::GITHUB_OAUTH_KEY . '/' . $this->escape($domain), $token);
67
68
        return $this;
69
    }
70
71
    /**
72
     * Get a github OAuth token.
73
     *
74
     * @param string $domain The domain.
75
     *
76
     * @return string|null
0 ignored issues
show
Documentation introduced by
Should the return type not be array|string|integer|null? Also, consider making the array more specific, something like array<String>, or String[].

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

If the return type contains the type array, this check recommends the use of a more specific type like String[] or array<String>.

Loading history...
77
     */
78
    public function getGithubOAuthToken($domain = 'github.com')
79
    {
80
        return $this->get(self::GITHUB_OAUTH_KEY . '/' . $this->escape($domain));
81
    }
82
83
    /**
84
     * Unset a github OAuth token.
85
     *
86
     * @param string $domain The domain.
87
     *
88
     * @return AuthJson
89
     */
90
    public function removeGithubOAuthToken($domain = 'github.com')
91
    {
92
        $this->remove(self::GITHUB_OAUTH_KEY . '/' . $this->escape($domain));
93
94
        return $this;
95
    }
96
97
    /**
98
     * Set a gitlab OAuth token.
99
     *
100
     * @param string $token  The token.
101
     *
102
     * @param string $domain The domain.
103
     *
104
     * @return AuthJson
105
     */
106
    public function setGitlabOAuthToken($token, $domain = 'gitlab.com')
107
    {
108
        $this->set(self::GITLAB_OAUTH_KEY . '/' . $this->escape($domain), $token);
109
110
        return $this;
111
    }
112
113
    /**
114
     * Get a gitlab OAuth token.
115
     *
116
     * @param string $domain The domain.
117
     *
118
     * @return string|null
0 ignored issues
show
Documentation introduced by
Should the return type not be array|string|integer|null? Also, consider making the array more specific, something like array<String>, or String[].

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

If the return type contains the type array, this check recommends the use of a more specific type like String[] or array<String>.

Loading history...
119
     */
120
    public function getGitlabOAuthToken($domain = 'gitlab.com')
121
    {
122
        return $this->get(self::GITLAB_OAUTH_KEY . '/' . $this->escape($domain));
123
    }
124
125
    /**
126
     * Unset a gitlab OAuth token.
127
     *
128
     * @param string $domain The domain.
129
     *
130
     * @return AuthJson
131
     */
132
    public function removeGitlabOAuthToken($domain = 'gitlab.com')
133
    {
134
        $this->remove(self::GITLAB_OAUTH_KEY . '/' . $this->escape($domain));
135
136
        return $this;
137
    }
138
139
    /**
140
     * Set a gitlab private token.
141
     *
142
     * @param string $token  The token.
143
     *
144
     * @param string $domain The domain.
145
     *
146
     * @return AuthJson
147
     */
148
    public function setGitlabPrivateToken($token, $domain = 'gitlab.com')
149
    {
150
        $this->set(self::GITLAB_PRIVATE_KEY . '/' . $this->escape($domain), $token);
151
152
        return $this;
153
    }
154
155
    /**
156
     * Get a gitlab private token.
157
     *
158
     * @param string $domain The domain.
159
     *
160
     * @return string|null
0 ignored issues
show
Documentation introduced by
Should the return type not be array|string|integer|null? Also, consider making the array more specific, something like array<String>, or String[].

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

If the return type contains the type array, this check recommends the use of a more specific type like String[] or array<String>.

Loading history...
161
     */
162
    public function getGitlabPrivateToken($domain = 'gitlab.com')
163
    {
164
        return $this->get(self::GITLAB_PRIVATE_KEY . '/' . $this->escape($domain));
165
    }
166
167
    /**
168
     * Unset a gitlab private token.
169
     *
170
     * @param string $domain The domain.
171
     *
172
     * @return AuthJson
173
     */
174
    public function removeGitlabPrivateToken($domain = 'gitlab.com')
175
    {
176
        $this->remove(self::GITLAB_PRIVATE_KEY . '/' . $this->escape($domain));
177
178
        return $this;
179
    }
180
181
    /**
182
     * Set Bitbucket OAuth.
183
     *
184
     * @param string $key    The consumer key.
185
     *
186
     * @param string $secret The consumer secret.
187
     *
188
     * @param string $domain The domain.
189
     *
190
     * @return AuthJson
191
     */
192
    public function setBitbucketOAuth($key, $secret, $domain = 'bitbucket.org')
193
    {
194
        $this->set(
195
            self::BITBUCKET_OAUTH_KEY . '/' . $this->escape($domain),
196
            ['consumer-key' => $key, 'consumer-secret' => $secret]
197
        );
198
199
        return $this;
200
    }
201
202
    /**
203
     * Get Bitbucket OAuth key.
204
     *
205
     * @param string $domain The domain.
206
     *
207
     * @return string|null
0 ignored issues
show
Documentation introduced by
Should the return type not be array|string|integer|null? Also, consider making the array more specific, something like array<String>, or String[].

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

If the return type contains the type array, this check recommends the use of a more specific type like String[] or array<String>.

Loading history...
208
     */
209
    public function getBitbucketOAuthKey($domain = 'bitbucket.org')
210
    {
211
        return $this->get(self::BITBUCKET_OAUTH_KEY . '/' . $this->escape($domain) . '/consumer-key');
212
    }
213
214
    /**
215
     * Get Bitbucket OAuth secret.
216
     *
217
     * @param string $domain The domain.
218
     *
219
     * @return string|null
0 ignored issues
show
Documentation introduced by
Should the return type not be array|string|integer|null? Also, consider making the array more specific, something like array<String>, or String[].

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

If the return type contains the type array, this check recommends the use of a more specific type like String[] or array<String>.

Loading history...
220
     */
221
    public function getBitbucketOAuthSecret($domain = 'bitbucket.org')
222
    {
223
        return $this->get(self::BITBUCKET_OAUTH_KEY . '/' . $this->escape($domain) . '/consumer-secret');
224
    }
225
226
    /**
227
     * Unset a Bitbucket token.
228
     *
229
     * @param string $domain The domain.
230
     *
231
     * @return AuthJson
232
     */
233
    public function removeBitbucketOAuth($domain = 'bitbucket.org')
234
    {
235
        $this->remove(self::BITBUCKET_OAUTH_KEY . '/' . $this->escape($domain));
236
237
        return $this;
238
    }
239
240
    /**
241
     * Set http-basic auth.
242
     *
243
     * @param string $username The consumer key.
244
     *
245
     * @param string $password The consumer secret.
246
     *
247
     * @param string $domain   The domain.
248
     *
249
     * @return AuthJson
250
     */
251
    public function setHttpBasic($username, $password, $domain)
252
    {
253
        $this->set(
254
            self::HTTP_BASIC_KEY . '/' . $this->escape($domain),
255
            ['username' => $username, 'password' => $password]
256
        );
257
258
        return $this;
259
    }
260
261
    /**
262
     * Get http-basic auth user name.
263
     *
264
     * @param string $domain The domain.
265
     *
266
     * @return string|null
0 ignored issues
show
Documentation introduced by
Should the return type not be array|string|integer|null? Also, consider making the array more specific, something like array<String>, or String[].

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

If the return type contains the type array, this check recommends the use of a more specific type like String[] or array<String>.

Loading history...
267
     */
268
    public function getHttpBasicUser($domain)
269
    {
270
        return $this->get(self::HTTP_BASIC_KEY . '/' . $this->escape($domain) . '/username');
271
    }
272
273
    /**
274
     * Get http-basic auth password.
275
     *
276
     * @param string $domain The domain.
277
     *
278
     * @return string|null
0 ignored issues
show
Documentation introduced by
Should the return type not be array|string|integer|null? Also, consider making the array more specific, something like array<String>, or String[].

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

If the return type contains the type array, this check recommends the use of a more specific type like String[] or array<String>.

Loading history...
279
     */
280
    public function getHttpBasicPassword($domain)
281
    {
282
        return $this->get(self::HTTP_BASIC_KEY . '/' . $this->escape($domain) . '/password');
283
    }
284
285
    /**
286
     * Unset http-basic auth.
287
     *
288
     * @param string $domain The domain.
289
     *
290
     * @return AuthJson
291
     */
292
    public function removeHttpBasic($domain)
293
    {
294
        $this->remove(self::HTTP_BASIC_KEY . '/' . $this->escape($domain));
295
296
        return $this;
297
    }
298
}
299