@@ -92,13 +92,13 @@ discard block |
||
| 92 | 92 | */ |
| 93 | 93 | public function refreshAccessToken(AccessToken $token = null):AccessToken{ |
| 94 | 94 | |
| 95 | - if($token === null){ |
|
| 95 | + if ($token === null) { |
|
| 96 | 96 | $token = $this->storage->getAccessToken($this->serviceName); |
| 97 | 97 | } |
| 98 | 98 | |
| 99 | 99 | $refreshToken = $token->refreshToken; |
| 100 | 100 | |
| 101 | - if(empty($refreshToken)){ |
|
| 101 | + if (empty($refreshToken)) { |
|
| 102 | 102 | throw new ProviderException( |
| 103 | 103 | sprintf('no refresh token available, token expired [%s]', date('Y-m-d h:i:s A', $token->expires)) |
| 104 | 104 | ); |
@@ -120,7 +120,7 @@ discard block |
||
| 120 | 120 | |
| 121 | 121 | $newToken = $this->parseTokenResponse($this->http->sendRequest($request)); |
| 122 | 122 | |
| 123 | - if(empty($newToken->refreshToken)){ |
|
| 123 | + if (empty($newToken->refreshToken)) { |
|
| 124 | 124 | $newToken->refreshToken = $refreshToken; |
| 125 | 125 | } |
| 126 | 126 | |
@@ -143,15 +143,15 @@ discard block |
||
| 143 | 143 | $method = strtoupper($method ?? ''); |
| 144 | 144 | $token = $this->storage->getAccessToken($this->serviceName); |
| 145 | 145 | |
| 146 | - if($token->isExpired()){ |
|
| 146 | + if ($token->isExpired()) { |
|
| 147 | 147 | $this->refreshAccessToken($token); |
| 148 | 148 | } |
| 149 | 149 | |
| 150 | - if(!isset($params['fmt'])){ |
|
| 150 | + if (!isset($params['fmt'])) { |
|
| 151 | 151 | $params['fmt'] = 'json'; |
| 152 | 152 | } |
| 153 | 153 | |
| 154 | - if(in_array($method, ['POST', 'PUT', 'DELETE']) && !isset($params['client'])){ |
|
| 154 | + if (in_array($method, ['POST', 'PUT', 'DELETE']) && !isset($params['client'])) { |
|
| 155 | 155 | $params['client'] = $this->options->user_agent; // @codeCoverageIgnore |
| 156 | 156 | } |
| 157 | 157 | |
@@ -26,7 +26,7 @@ discard block |
||
| 26 | 26 | /** |
| 27 | 27 | * @method \Psr\Http\Message\ResponseInterface me() |
| 28 | 28 | */ |
| 29 | -class Deezer extends OAuth2Provider implements CSRFToken{ |
|
| 29 | +class Deezer extends OAuth2Provider implements CSRFToken { |
|
| 30 | 30 | |
| 31 | 31 | public const SCOPE_BASIC = 'basic_access'; |
| 32 | 32 | public const SCOPE_EMAIL = 'email'; |
@@ -59,7 +59,7 @@ discard block |
||
| 59 | 59 | public function getAuthURL(array $params = null, array $scopes = null):UriInterface{ |
| 60 | 60 | $params = $params ?? []; |
| 61 | 61 | |
| 62 | - if(isset($params['client_secret'])){ |
|
| 62 | + if (isset($params['client_secret'])) { |
|
| 63 | 63 | unset($params['client_secret']); |
| 64 | 64 | } |
| 65 | 65 | |
@@ -107,11 +107,11 @@ discard block |
||
| 107 | 107 | protected function parseTokenResponse(ResponseInterface $response):AccessToken{ |
| 108 | 108 | $data = $this->parseQuery(decompress_content($response)); |
| 109 | 109 | |
| 110 | - if(isset($data['error_reason'])){ |
|
| 110 | + if (isset($data['error_reason'])) { |
|
| 111 | 111 | throw new ProviderException('error retrieving access token: "'.$data['error_reason'].'"'); |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | - if(!isset($data['access_token'])){ |
|
| 114 | + if (!isset($data['access_token'])) { |
|
| 115 | 115 | throw new ProviderException('token missing'); |
| 116 | 116 | } |
| 117 | 117 | |
@@ -48,7 +48,7 @@ discard block |
||
| 48 | 48 | * @method \Psr\Http\Message\ResponseInterface steamWebAPIUtilGetSupportedAPIList() |
| 49 | 49 | * @method \Psr\Http\Message\ResponseInterface storeServiceGetAppList(array $params = ['if_modified_since', 'have_description_language', 'include_games', 'include_dlc', 'include_software', 'include_videos', 'include_hardware', 'last_appid', 'max_results']) |
| 50 | 50 | */ |
| 51 | -class SteamOpenID extends OAuthProvider{ |
|
| 51 | +class SteamOpenID extends OAuthProvider { |
|
| 52 | 52 | |
| 53 | 53 | protected string $authURL = 'https://steamcommunity.com/openid/login'; |
| 54 | 54 | protected string $accessTokenURL = 'https://steamcommunity.com/openid/login'; |
@@ -90,7 +90,7 @@ discard block |
||
| 90 | 90 | 'openid.sig' => $received['openid_sig'], |
| 91 | 91 | ]; |
| 92 | 92 | |
| 93 | - foreach(explode(',', $received['openid_signed']) as $item){ |
|
| 93 | + foreach (explode(',', $received['openid_signed']) as $item) { |
|
| 94 | 94 | $body['openid.'.$item] = $received['openid_'.$item]; |
| 95 | 95 | } |
| 96 | 96 | |
@@ -125,11 +125,11 @@ discard block |
||
| 125 | 125 | protected function parseTokenResponse(ResponseInterface $response):AccessToken{ |
| 126 | 126 | $data = explode("\x0a", (string)$response->getBody()); |
| 127 | 127 | |
| 128 | - if(!isset($data[1]) || strpos($data[1], 'is_valid') !== 0){ |
|
| 128 | + if (!isset($data[1]) || strpos($data[1], 'is_valid') !== 0) { |
|
| 129 | 129 | throw new ProviderException('unable to parse token response'); |
| 130 | 130 | } |
| 131 | 131 | |
| 132 | - if($data[1] !== 'is_valid:true'){ |
|
| 132 | + if ($data[1] !== 'is_valid:true') { |
|
| 133 | 133 | throw new ProviderException('invalid id'); |
| 134 | 134 | } |
| 135 | 135 | |
@@ -151,8 +151,8 @@ discard block |
||
| 151 | 151 | $params = ['key' => $this->options->secret]; |
| 152 | 152 | |
| 153 | 153 | // the steamid parameter does not necessarily specify the current user, so add it only when it's not already set |
| 154 | - if(strpos(parse_url($uri, PHP_URL_QUERY), 'steamid=') === false){ // php8: str_contains |
|
| 155 | - $params['steamid']= $token->accessToken; |
|
| 154 | + if (strpos(parse_url($uri, PHP_URL_QUERY), 'steamid=') === false) { // php8: str_contains |
|
| 155 | + $params['steamid'] = $token->accessToken; |
|
| 156 | 156 | } |
| 157 | 157 | |
| 158 | 158 | return $request->withUri($this->uriFactory->createUri($this->mergeQuery($uri, $params))); |
@@ -237,7 +237,7 @@ discard block |
||
| 237 | 237 | * @method \Psr\Http\Message\ResponseInterface wvwUpgrades(array $params = ['lang']) |
| 238 | 238 | * @method \Psr\Http\Message\ResponseInterface wvwUpgradesId(string $id, array $params = ['lang']) |
| 239 | 239 | */ |
| 240 | -class GuildWars2 extends OAuth2Provider{ |
|
| 240 | +class GuildWars2 extends OAuth2Provider { |
|
| 241 | 241 | |
| 242 | 242 | public const SCOPE_ACCOUNT = 'account'; |
| 243 | 243 | public const SCOPE_INVENTORIES = 'inventories'; |
@@ -267,7 +267,7 @@ discard block |
||
| 267 | 267 | */ |
| 268 | 268 | public function storeGW2Token(string $access_token):AccessToken{ |
| 269 | 269 | |
| 270 | - if(!preg_match('/^[a-f\d\-]{72}$/i', $access_token)){ |
|
| 270 | + if (!preg_match('/^[a-f\d\-]{72}$/i', $access_token)) { |
|
| 271 | 271 | throw new ProviderException('invalid token'); |
| 272 | 272 | } |
| 273 | 273 | |
@@ -277,7 +277,7 @@ discard block |
||
| 277 | 277 | |
| 278 | 278 | $tokeninfo = get_json($this->http->sendRequest($request)); |
| 279 | 279 | |
| 280 | - if(isset($tokeninfo->id) && strpos($access_token, $tokeninfo->id) === 0){ |
|
| 280 | + if (isset($tokeninfo->id) && strpos($access_token, $tokeninfo->id) === 0) { |
|
| 281 | 281 | |
| 282 | 282 | $token = new AccessToken([ |
| 283 | 283 | 'provider' => $this->serviceName, |
@@ -62,15 +62,15 @@ discard block |
||
| 62 | 62 | protected function getRequestTarget(string $uri):string{ |
| 63 | 63 | $parsedURL = parseUrl($uri); |
| 64 | 64 | |
| 65 | - if(!isset($parsedURL['path'])){ |
|
| 65 | + if (!isset($parsedURL['path'])) { |
|
| 66 | 66 | throw new ProviderException('invalid path'); // @codeCoverageIgnore |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | 69 | // for some reason we were given a host name |
| 70 | - if(isset($parsedURL['host'])){ |
|
| 70 | + if (isset($parsedURL['host'])) { |
|
| 71 | 71 | |
| 72 | 72 | // back out if it doesn't match |
| 73 | - if(strpos($parsedURL['host'], '.api.npr.org') === false){ |
|
| 73 | + if (strpos($parsedURL['host'], '.api.npr.org') === false) { |
|
| 74 | 74 | throw new ProviderException('given host does not match provider host'); // @codeCoverageIgnore |
| 75 | 75 | } |
| 76 | 76 | |
@@ -88,14 +88,14 @@ discard block |
||
| 88 | 88 | public function sendRequest(RequestInterface $request):ResponseInterface{ |
| 89 | 89 | |
| 90 | 90 | // get authorization only if we request the provider API |
| 91 | - if(strpos((string)$request->getUri(), '.api.npr.org') !== false){ |
|
| 91 | + if (strpos((string)$request->getUri(), '.api.npr.org') !== false) { |
|
| 92 | 92 | $token = $this->storage->getAccessToken($this->serviceName); |
| 93 | 93 | |
| 94 | 94 | // attempt to refresh an expired token |
| 95 | - if( |
|
| 95 | + if ( |
|
| 96 | 96 | $this->options->tokenAutoRefresh |
| 97 | 97 | && ($token->isExpired() || $token->expires === $token::EOL_UNKNOWN) |
| 98 | - ){ |
|
| 98 | + ) { |
|
| 99 | 99 | $token = $this->refreshAccessToken($token); // @codeCoverageIgnore |
| 100 | 100 | } |
| 101 | 101 | |
@@ -120,7 +120,7 @@ |
||
| 120 | 120 | public function setInstance(string $instance):Mastodon{ |
| 121 | 121 | $instance = parseUrl($instance); |
| 122 | 122 | |
| 123 | - if(!isset($instance['scheme']) || !isset($instance['host'])){ |
|
| 123 | + if (!isset($instance['scheme']) || !isset($instance['host'])) { |
|
| 124 | 124 | throw new OAuthException('invalid instance URL'); |
| 125 | 125 | } |
| 126 | 126 | |
@@ -75,7 +75,7 @@ discard block |
||
| 75 | 75 | * @method \Psr\Http\Message\ResponseInterface userGetWeeklyChartList(array $params = ['user']) |
| 76 | 76 | * @method \Psr\Http\Message\ResponseInterface userGetWeeklyTrackChart(array $params = ['from', 'to', 'user']) |
| 77 | 77 | */ |
| 78 | -class LastFM extends OAuthProvider{ |
|
| 78 | +class LastFM extends OAuthProvider { |
|
| 79 | 79 | |
| 80 | 80 | public const PERIOD_OVERALL = 'overall'; |
| 81 | 81 | public const PERIOD_7DAY = '7day'; |
@@ -93,7 +93,7 @@ discard block |
||
| 93 | 93 | self::PERIOD_12MONTH, |
| 94 | 94 | ]; |
| 95 | 95 | |
| 96 | - protected string $authURL = 'https://www.last.fm/api/auth'; |
|
| 96 | + protected string $authURL = 'https://www.last.fm/api/auth'; |
|
| 97 | 97 | protected ?string $apiURL = 'https://ws.audioscrobbler.com/2.0'; |
| 98 | 98 | protected ?string $userRevokeURL = 'https://www.last.fm/settings/applications'; |
| 99 | 99 | protected ?string $endpointMap = LastFMEndpoints::class; |
@@ -122,8 +122,8 @@ discard block |
||
| 122 | 122 | |
| 123 | 123 | $signature = ''; |
| 124 | 124 | |
| 125 | - foreach($params as $k => $v){ |
|
| 126 | - if(!in_array($k, ['format', 'callback'])){ |
|
| 125 | + foreach ($params as $k => $v) { |
|
| 126 | + if (!in_array($k, ['format', 'callback'])) { |
|
| 127 | 127 | $signature .= $k.$v; |
| 128 | 128 | } |
| 129 | 129 | } |
@@ -162,13 +162,13 @@ discard block |
||
| 162 | 162 | protected function parseTokenResponse(ResponseInterface $response):AccessToken{ |
| 163 | 163 | $data = get_json($response, true); |
| 164 | 164 | |
| 165 | - if(!$data || !is_array($data)){ |
|
| 165 | + if (!$data || !is_array($data)) { |
|
| 166 | 166 | throw new ProviderException('unable to parse token response'); |
| 167 | 167 | } |
| 168 | - elseif(isset($data['error'])){ |
|
| 168 | + elseif (isset($data['error'])) { |
|
| 169 | 169 | throw new ProviderException('error retrieving access token: '.$data['message']); |
| 170 | 170 | } |
| 171 | - elseif(!isset($data['session']['key'])){ |
|
| 171 | + elseif (!isset($data['session']['key'])) { |
|
| 172 | 172 | throw new ProviderException('token missing'); |
| 173 | 173 | } |
| 174 | 174 | |
@@ -208,7 +208,7 @@ discard block |
||
| 208 | 208 | |
| 209 | 209 | $params['api_sig'] = $this->getSignature($params); |
| 210 | 210 | |
| 211 | - if($method === 'POST'){ |
|
| 211 | + if ($method === 'POST') { |
|
| 212 | 212 | $body = $params; |
| 213 | 213 | $params = []; |
| 214 | 214 | } |
@@ -216,11 +216,11 @@ discard block |
||
| 216 | 216 | /** @phan-suppress-next-line PhanTypeMismatchArgumentNullable */ |
| 217 | 217 | $request = $this->requestFactory->createRequest($method, $this->mergeQuery($this->apiURL, $params)); |
| 218 | 218 | |
| 219 | - foreach(array_merge($this->apiHeaders, $headers ?? []) as $header => $value){ |
|
| 219 | + foreach (array_merge($this->apiHeaders, $headers ?? []) as $header => $value) { |
|
| 220 | 220 | $request = $request->withAddedHeader($header, $value); |
| 221 | 221 | } |
| 222 | 222 | |
| 223 | - if($method === 'POST'){ |
|
| 223 | + if ($method === 'POST') { |
|
| 224 | 224 | $request = $request->withHeader('Content-Type', 'application/x-www-form-urlencoded'); |
| 225 | 225 | $body = $this->streamFactory->createStream($this->buildQuery($body, PHP_QUERY_RFC1738)); |
| 226 | 226 | $request = $request->withBody($body); |
@@ -115,7 +115,7 @@ discard block |
||
| 115 | 115 | protected array $authHeaders = ['Accept' => 'application/vnd.twitchtv.v5+json']; |
| 116 | 116 | protected array $apiHeaders = ['Accept' => 'application/vnd.twitchtv.v5+json']; |
| 117 | 117 | |
| 118 | - protected array $defaultScopes = [ |
|
| 118 | + protected array $defaultScopes = [ |
|
| 119 | 119 | self::SCOPE_USER_READ_EMAIL, |
| 120 | 120 | ]; |
| 121 | 121 | |
@@ -133,7 +133,7 @@ discard block |
||
| 133 | 133 | 'grant_type' => 'client_credentials', |
| 134 | 134 | ]; |
| 135 | 135 | |
| 136 | - if($scopes !== null){ |
|
| 136 | + if ($scopes !== null) { |
|
| 137 | 137 | $params['scope'] = implode($this->scopesDelimiter, $scopes); |
| 138 | 138 | } |
| 139 | 139 | |
@@ -143,7 +143,7 @@ discard block |
||
| 143 | 143 | ->withBody($this->streamFactory->createStream($this->buildQuery($params, PHP_QUERY_RFC1738))) |
| 144 | 144 | ; |
| 145 | 145 | |
| 146 | - foreach($this->authHeaders as $header => $value){ |
|
| 146 | + foreach ($this->authHeaders as $header => $value) { |
|
| 147 | 147 | $request = $request->withAddedHeader($header, $value); |
| 148 | 148 | } |
| 149 | 149 | |
@@ -22,7 +22,7 @@ discard block |
||
| 22 | 22 | /** |
| 23 | 23 | * @method \Psr\Http\Message\ResponseInterface me() |
| 24 | 24 | */ |
| 25 | -class Foursquare extends OAuth2Provider{ |
|
| 25 | +class Foursquare extends OAuth2Provider { |
|
| 26 | 26 | |
| 27 | 27 | protected const API_VERSIONDATE = '20190225'; |
| 28 | 28 | |
@@ -50,7 +50,7 @@ discard block |
||
| 50 | 50 | $queryparams = []; |
| 51 | 51 | $querystring = parseUrl($this->apiURL.$path)['query'] ?? ''; |
| 52 | 52 | |
| 53 | - if(!empty($querystring)){ |
|
| 53 | + if (!empty($querystring)) { |
|
| 54 | 54 | $queryparams = $this->parseQuery($querystring); |
| 55 | 55 | } |
| 56 | 56 | |