Sid Gifari File Manager
🏠 Root
/
home2
/
meumer25
/
paineleubella.meumercado.app
/
vendor
/
kreait
/
firebase-php
/
src
/
Firebase
/
Exception
/
Editing: DatabaseApiExceptionConverter.php
<?php declare(strict_types=1); namespace Kreait\Firebase\Exception; use GuzzleHttp\Exception\ConnectException; use GuzzleHttp\Exception\RequestException; use Kreait\Firebase\Exception\Database\ApiConnectionFailed; use Kreait\Firebase\Exception\Database\DatabaseError; use Kreait\Firebase\Http\ErrorResponseParser; use Throwable; /** * @internal */ class DatabaseApiExceptionConverter { private ErrorResponseParser $responseParser; /** * @internal */ public function __construct() { $this->responseParser = new ErrorResponseParser(); } public function convertException(Throwable $exception): DatabaseException { // @phpstan-ignore-next-line if ($exception instanceof RequestException && !($exception instanceof ConnectException)) { return $this->convertGuzzleRequestException($exception); } if ($exception instanceof ConnectException) { return new ApiConnectionFailed('Unable to connect to the API: '.$exception->getMessage(), $exception->getCode(), $exception); } return new DatabaseError($exception->getMessage(), $exception->getCode(), $exception); } private function convertGuzzleRequestException(RequestException $e): DatabaseException { $message = $e->getMessage(); $code = $e->getCode(); $response = $e->getResponse(); if ($response !== null) { $message = $this->responseParser->getErrorReasonFromResponse($response); $code = $response->getStatusCode(); } switch ($code) { case 401: case 403: return new Database\PermissionDenied($message, $code, $e); case 412: return new Database\PreconditionFailed($message, $code, $e); case 404: return Database\DatabaseNotFound::fromUri($e->getRequest()->getUri()); } return new DatabaseError($message, $code, $e); } }
Save
Cancel