@@ -14,7 +14,7 @@ |
||
14 | 14 | |
15 | 15 | use chillerlan\OAuth\Core\AccessToken; |
16 | 16 | |
17 | -interface OAuthStorageInterface{ |
|
17 | +interface OAuthStorageInterface { |
|
18 | 18 | |
19 | 19 | /** |
20 | 20 | * @param string $service |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | * @property int $expires |
30 | 30 | * @property string $provider |
31 | 31 | */ |
32 | -class AccessToken extends SettingsContainerAbstract{ |
|
32 | +class AccessToken extends SettingsContainerAbstract { |
|
33 | 33 | |
34 | 34 | /** |
35 | 35 | * Denotes an unknown end of life time. |
@@ -83,7 +83,7 @@ discard block |
||
83 | 83 | * |
84 | 84 | * @param iterable|null $properties |
85 | 85 | */ |
86 | - public function __construct(iterable $properties = null){ |
|
86 | + public function __construct(iterable $properties = null) { |
|
87 | 87 | parent::__construct($properties); |
88 | 88 | |
89 | 89 | $this->setExpiry($this->expires); |
@@ -99,7 +99,7 @@ discard block |
||
99 | 99 | */ |
100 | 100 | public function __set(string $property, $value):void{ |
101 | 101 | |
102 | - if(property_exists($this, $property)){ |
|
102 | + if (property_exists($this, $property)) { |
|
103 | 103 | $property === 'expires' |
104 | 104 | ? $this->setExpiry($value) |
105 | 105 | : $this->{$property} = $value; |
@@ -115,19 +115,19 @@ discard block |
||
115 | 115 | public function setExpiry(int $expires = null):AccessToken{ |
116 | 116 | $now = time(); |
117 | 117 | |
118 | - if($expires!== null){ |
|
119 | - $expires = intval($expires); |
|
118 | + if ($expires !== null) { |
|
119 | + $expires = intval($expires); |
|
120 | 120 | } |
121 | 121 | |
122 | 122 | $this->expires = self::EOL_UNKNOWN; |
123 | 123 | |
124 | - if($expires === 0 || $expires === self::EOL_NEVER_EXPIRES){ |
|
124 | + if ($expires === 0 || $expires === self::EOL_NEVER_EXPIRES) { |
|
125 | 125 | $this->expires = self::EOL_NEVER_EXPIRES; |
126 | 126 | } |
127 | - elseif($expires > $now){ |
|
127 | + elseif ($expires > $now) { |
|
128 | 128 | $this->expires = $expires; |
129 | 129 | } |
130 | - elseif($expires > 0 && $expires < self::EXPIRY_MAX){ |
|
130 | + elseif ($expires > 0 && $expires < self::EXPIRY_MAX) { |
|
131 | 131 | $this->expires = $now + $expires; |
132 | 132 | } |
133 | 133 |
@@ -123,11 +123,9 @@ |
||
123 | 123 | |
124 | 124 | if($expires === 0 || $expires === self::EOL_NEVER_EXPIRES){ |
125 | 125 | $this->expires = self::EOL_NEVER_EXPIRES; |
126 | - } |
|
127 | - elseif($expires > $now){ |
|
126 | + } elseif($expires > $now){ |
|
128 | 127 | $this->expires = $expires; |
129 | - } |
|
130 | - elseif($expires > 0 && $expires < self::EXPIRY_MAX){ |
|
128 | + } elseif($expires > 0 && $expires < self::EXPIRY_MAX){ |
|
131 | 129 | $this->expires = $now + $expires; |
132 | 130 | } |
133 | 131 |
@@ -122,7 +122,7 @@ discard block |
||
122 | 122 | * |
123 | 123 | * @throws \chillerlan\HTTP\MagicAPI\ApiClientException |
124 | 124 | */ |
125 | - public function __construct(ClientInterface $http, OAuthStorageInterface $storage, SettingsContainerInterface $options, LoggerInterface $logger = null){ |
|
125 | + public function __construct(ClientInterface $http, OAuthStorageInterface $storage, SettingsContainerInterface $options, LoggerInterface $logger = null) { |
|
126 | 126 | $this->http = $http; |
127 | 127 | $this->storage = $storage; |
128 | 128 | $this->options = $options; |
@@ -134,10 +134,10 @@ discard block |
||
134 | 134 | |
135 | 135 | $this->serviceName = (new ReflectionClass($this))->getShortName(); |
136 | 136 | |
137 | - if($this instanceof ApiClientInterface && !empty($this->endpointMap) && class_exists($this->endpointMap)){ |
|
137 | + if ($this instanceof ApiClientInterface && !empty($this->endpointMap) && class_exists($this->endpointMap)) { |
|
138 | 138 | $this->endpoints = new $this->endpointMap; |
139 | 139 | |
140 | - if(!$this->endpoints instanceof EndpointMapInterface){ |
|
140 | + if (!$this->endpoints instanceof EndpointMapInterface) { |
|
141 | 141 | throw new ApiClientException('invalid endpoint map'); // @codeCoverageIgnore |
142 | 142 | } |
143 | 143 | |
@@ -150,9 +150,9 @@ discard block |
||
150 | 150 | * |
151 | 151 | * @return string|null |
152 | 152 | */ |
153 | - public function __get(string $name):?string{ |
|
153 | + public function __get(string $name): ?string{ |
|
154 | 154 | |
155 | - if(!in_array($name, ['serviceName', 'authURL', 'accessTokenURL', 'revokeURL', 'userRevokeURL', 'apiURL'], true)){ |
|
155 | + if (!in_array($name, ['serviceName', 'authURL', 'accessTokenURL', 'revokeURL', 'userRevokeURL', 'apiURL'], true)) { |
|
156 | 156 | return null; |
157 | 157 | } |
158 | 158 | |
@@ -209,11 +209,11 @@ discard block |
||
209 | 209 | */ |
210 | 210 | public function __call(string $name, array $arguments):ResponseInterface{ |
211 | 211 | |
212 | - if(!$this instanceof ApiClientInterface){ |
|
212 | + if (!$this instanceof ApiClientInterface) { |
|
213 | 213 | throw new ApiClientException('MagicAPI not available'); |
214 | 214 | } |
215 | 215 | |
216 | - if(!$this->endpoints->__isset($name)){ |
|
216 | + if (!$this->endpoints->__isset($name)) { |
|
217 | 217 | throw new ApiClientException('endpoint not found'); |
218 | 218 | } |
219 | 219 | |
@@ -226,21 +226,21 @@ discard block |
||
226 | 226 | $path_elements = $m['path_elements'] ?? []; |
227 | 227 | $params_in_url = count($path_elements); |
228 | 228 | $params = $arguments[$params_in_url] ?? []; |
229 | - $urlparams = array_slice($arguments,0 , $params_in_url); |
|
229 | + $urlparams = array_slice($arguments, 0, $params_in_url); |
|
230 | 230 | |
231 | - if($params_in_url > 0){ |
|
231 | + if ($params_in_url > 0) { |
|
232 | 232 | |
233 | - if(count($urlparams) < $params_in_url){ |
|
233 | + if (count($urlparams) < $params_in_url) { |
|
234 | 234 | throw new APIClientException('too few URL params, required: '.implode(', ', $path_elements)); |
235 | 235 | } |
236 | 236 | |
237 | 237 | $endpoint = sprintf($endpoint, ...$urlparams); |
238 | 238 | } |
239 | 239 | |
240 | - if(in_array($method, ['POST', 'PATCH', 'PUT', 'DELETE'])){ |
|
240 | + if (in_array($method, ['POST', 'PATCH', 'PUT', 'DELETE'])) { |
|
241 | 241 | $body = $arguments[$params_in_url + 1] ?? $params; |
242 | 242 | |
243 | - if($params === $body){ |
|
243 | + if ($params === $body) { |
|
244 | 244 | $params = []; |
245 | 245 | } |
246 | 246 | |
@@ -289,32 +289,32 @@ discard block |
||
289 | 289 | $token = $this->storage->getAccessToken($this->serviceName); |
290 | 290 | |
291 | 291 | // attempt to refresh an expired token |
292 | - if($this instanceof TokenRefresh && $this->options->tokenAutoRefresh && ($token->isExpired() || $token->expires === $token::EOL_UNKNOWN)){ |
|
292 | + if ($this instanceof TokenRefresh && $this->options->tokenAutoRefresh && ($token->isExpired() || $token->expires === $token::EOL_UNKNOWN)) { |
|
293 | 293 | $token = $this->refreshAccessToken($token); |
294 | 294 | } |
295 | 295 | |
296 | 296 | $request = $this->requestFactory |
297 | 297 | ->createRequest($method ?? 'GET', Psr7\merge_query($this->apiURL.$path, $params ?? [])); |
298 | 298 | |
299 | - foreach(array_merge($this->apiHeaders, $headers ?? []) as $header => $value){ |
|
299 | + foreach (array_merge($this->apiHeaders, $headers ?? []) as $header => $value) { |
|
300 | 300 | $request = $request->withAddedHeader($header, $value); |
301 | 301 | } |
302 | 302 | |
303 | 303 | $request = $this->getRequestAuthorization($request, $token); |
304 | 304 | |
305 | - if(is_array($body) && $request->hasHeader('content-type')){ |
|
305 | + if (is_array($body) && $request->hasHeader('content-type')) { |
|
306 | 306 | $contentType = strtolower($request->getHeaderLine('content-type')); |
307 | 307 | |
308 | - if($contentType === 'application/x-www-form-urlencoded'){ |
|
308 | + if ($contentType === 'application/x-www-form-urlencoded') { |
|
309 | 309 | $body = $this->streamFactory->createStream(http_build_query($body, '', '&', PHP_QUERY_RFC1738)); |
310 | 310 | } |
311 | - elseif($contentType === 'application/json'){ |
|
311 | + elseif ($contentType === 'application/json') { |
|
312 | 312 | $body = $this->streamFactory->createStream(json_encode($body)); |
313 | 313 | } |
314 | 314 | |
315 | 315 | } |
316 | 316 | |
317 | - if($body instanceof StreamInterface){ |
|
317 | + if ($body instanceof StreamInterface) { |
|
318 | 318 | $request = $request->withBody($body); |
319 | 319 | } |
320 | 320 |
@@ -20,7 +20,7 @@ discard block |
||
20 | 20 | * @method array setState(array $params) |
21 | 21 | * @method \chillerlan\OAuth\Core\OAuth2Interface checkState(string $state = null) |
22 | 22 | */ |
23 | -abstract class OAuth2Provider extends OAuthProvider implements OAuth2Interface{ |
|
23 | +abstract class OAuth2Provider extends OAuthProvider implements OAuth2Interface { |
|
24 | 24 | |
25 | 25 | /** |
26 | 26 | * @var int |
@@ -56,7 +56,7 @@ discard block |
||
56 | 56 | public function getAuthURL(array $params = null, array $scopes = null):UriInterface{ |
57 | 57 | $params = $params ?? []; |
58 | 58 | |
59 | - if(isset($params['client_secret'])){ |
|
59 | + if (isset($params['client_secret'])) { |
|
60 | 60 | unset($params['client_secret']); |
61 | 61 | } |
62 | 62 | |
@@ -67,11 +67,11 @@ discard block |
||
67 | 67 | 'type' => 'web_server', |
68 | 68 | ]); |
69 | 69 | |
70 | - if($scopes !== null){ |
|
70 | + if ($scopes !== null) { |
|
71 | 71 | $params['scope'] = implode($this->scopesDelimiter, $scopes); |
72 | 72 | } |
73 | 73 | |
74 | - if($this instanceof CSRFToken){ |
|
74 | + if ($this instanceof CSRFToken) { |
|
75 | 75 | $params = $this->setState($params); |
76 | 76 | } |
77 | 77 | |
@@ -87,19 +87,19 @@ discard block |
||
87 | 87 | protected function parseTokenResponse(ResponseInterface $response):AccessToken{ |
88 | 88 | $data = Psr7\get_json($response, true); |
89 | 89 | |
90 | - if(!is_array($data)){ |
|
90 | + if (!is_array($data)) { |
|
91 | 91 | throw new ProviderException('unable to parse token response'); |
92 | 92 | } |
93 | 93 | |
94 | - foreach(['error_description', 'error'] as $field){ |
|
94 | + foreach (['error_description', 'error'] as $field) { |
|
95 | 95 | |
96 | - if(isset($data[$field])){ |
|
96 | + if (isset($data[$field])) { |
|
97 | 97 | throw new ProviderException('error retrieving access token: "'.$data[$field].'"'); |
98 | 98 | } |
99 | 99 | |
100 | 100 | } |
101 | 101 | |
102 | - if(!isset($data['access_token'])){ |
|
102 | + if (!isset($data['access_token'])) { |
|
103 | 103 | throw new ProviderException('token missing'); |
104 | 104 | } |
105 | 105 | |
@@ -125,7 +125,7 @@ discard block |
||
125 | 125 | */ |
126 | 126 | public function getAccessToken(string $code, string $state = null):AccessToken{ |
127 | 127 | |
128 | - if($this instanceof CSRFToken){ |
|
128 | + if ($this instanceof CSRFToken) { |
|
129 | 129 | $this->checkState($state); |
130 | 130 | } |
131 | 131 | |
@@ -142,7 +142,7 @@ discard block |
||
142 | 142 | ->withHeader('Content-Type', 'application/x-www-form-urlencoded') |
143 | 143 | ->withBody($this->streamFactory->createStream(http_build_query($body, '', '&', PHP_QUERY_RFC1738))); |
144 | 144 | |
145 | - foreach($this->authHeaders as $header => $value){ |
|
145 | + foreach ($this->authHeaders as $header => $value) { |
|
146 | 146 | $request = $request->withHeader($header, $value); |
147 | 147 | } |
148 | 148 | |
@@ -162,15 +162,15 @@ discard block |
||
162 | 162 | */ |
163 | 163 | public function getRequestAuthorization(RequestInterface $request, AccessToken $token):RequestInterface{ |
164 | 164 | |
165 | - if(array_key_exists($this->authMethod, OAuth2Interface::AUTH_METHODS_HEADER)){ |
|
165 | + if (array_key_exists($this->authMethod, OAuth2Interface::AUTH_METHODS_HEADER)) { |
|
166 | 166 | $request = $request->withHeader('Authorization', OAuth2Interface::AUTH_METHODS_HEADER[$this->authMethod].$token->accessToken); |
167 | 167 | } |
168 | - elseif(array_key_exists($this->authMethod, OAuth2Interface::AUTH_METHODS_QUERY)){ |
|
168 | + elseif (array_key_exists($this->authMethod, OAuth2Interface::AUTH_METHODS_QUERY)) { |
|
169 | 169 | $uri = Psr7\merge_query((string)$request->getUri(), [OAuth2Interface::AUTH_METHODS_QUERY[$this->authMethod] => $token->accessToken]); |
170 | 170 | |
171 | 171 | $request = $request->withUri($this->uriFactory->createUri($uri)); |
172 | 172 | } |
173 | - else{ |
|
173 | + else { |
|
174 | 174 | throw new ProviderException('invalid auth type'); |
175 | 175 | } |
176 | 176 |
@@ -164,13 +164,11 @@ |
||
164 | 164 | |
165 | 165 | if(array_key_exists($this->authMethod, OAuth2Interface::AUTH_METHODS_HEADER)){ |
166 | 166 | $request = $request->withHeader('Authorization', OAuth2Interface::AUTH_METHODS_HEADER[$this->authMethod].$token->accessToken); |
167 | - } |
|
168 | - elseif(array_key_exists($this->authMethod, OAuth2Interface::AUTH_METHODS_QUERY)){ |
|
167 | + } elseif(array_key_exists($this->authMethod, OAuth2Interface::AUTH_METHODS_QUERY)){ |
|
169 | 168 | $uri = Psr7\merge_query((string)$request->getUri(), [OAuth2Interface::AUTH_METHODS_QUERY[$this->authMethod] => $token->accessToken]); |
170 | 169 | |
171 | 170 | $request = $request->withUri($this->uriFactory->createUri($uri)); |
172 | - } |
|
173 | - else{ |
|
171 | + } else{ |
|
174 | 172 | throw new ProviderException('invalid auth type'); |
175 | 173 | } |
176 | 174 |