allow vendord
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
This commit is contained in:
65
vendor/kreait/firebase-php/src/Firebase/AppCheck/ApiClient.php
vendored
Normal file
65
vendor/kreait/firebase-php/src/Firebase/AppCheck/ApiClient.php
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Kreait\Firebase\AppCheck;
|
||||
|
||||
use Beste\Json;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use Kreait\Firebase\Exception\AppCheckApiExceptionConverter;
|
||||
use Kreait\Firebase\Exception\AppCheckException;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\UriInterface;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @phpstan-import-type AppCheckTokenShape from AppCheckToken
|
||||
*/
|
||||
final class ApiClient
|
||||
{
|
||||
public function __construct(
|
||||
private readonly ClientInterface $client,
|
||||
private readonly AppCheckApiExceptionConverter $errorHandler,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws AppCheckException
|
||||
*
|
||||
* @return AppCheckTokenShape
|
||||
*/
|
||||
public function exchangeCustomToken(string $appId, string $customToken): array
|
||||
{
|
||||
$response = $this->requestApi('POST', 'apps/'.$appId.':exchangeCustomToken', [
|
||||
'headers' => [
|
||||
'Content-Type' => 'application/json; UTF-8',
|
||||
],
|
||||
'body' => Json::encode([
|
||||
'customToken' => $customToken,
|
||||
]),
|
||||
]);
|
||||
|
||||
/** @var AppCheckTokenShape $decoded */
|
||||
$decoded = Json::decode((string) $response->getBody(), true);
|
||||
|
||||
return $decoded;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param non-empty-string $method
|
||||
* @param array<string, mixed>|null $options
|
||||
* @throws AppCheckException
|
||||
*/
|
||||
private function requestApi(string $method, string|UriInterface $uri, ?array $options = null): ResponseInterface
|
||||
{
|
||||
$options ??= [];
|
||||
|
||||
try {
|
||||
return $this->client->request($method, $uri, $options);
|
||||
} catch (Throwable $e) {
|
||||
throw $this->errorHandler->convertException($e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user