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:
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Kreait\Firebase\DynamicLink\CreateDynamicLink;
|
||||
|
||||
use Beste\Json;
|
||||
use Kreait\Firebase\DynamicLink\CreateDynamicLink;
|
||||
use Kreait\Firebase\Exception\RuntimeException;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use UnexpectedValueException;
|
||||
|
||||
final class FailedToCreateDynamicLink extends RuntimeException
|
||||
{
|
||||
private ?CreateDynamicLink $action = null;
|
||||
|
||||
private ?ResponseInterface $response = null;
|
||||
|
||||
public static function withActionAndResponse(CreateDynamicLink $action, ResponseInterface $response): self
|
||||
{
|
||||
$fallbackMessage = 'Failed to create dynamic link';
|
||||
|
||||
try {
|
||||
$message = Json::decode((string) $response->getBody(), true)['error']['message'] ?? $fallbackMessage;
|
||||
} catch (UnexpectedValueException) {
|
||||
$message = $fallbackMessage;
|
||||
}
|
||||
|
||||
$error = new self($message);
|
||||
$error->action = $action;
|
||||
$error->response = $response;
|
||||
|
||||
return $error;
|
||||
}
|
||||
|
||||
public function action(): ?CreateDynamicLink
|
||||
{
|
||||
return $this->action;
|
||||
}
|
||||
|
||||
public function response(): ?ResponseInterface
|
||||
{
|
||||
return $this->response;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user