| Server IP : 202.155.9.250 / Your IP : 216.73.217.177 Web Server : LiteSpeed System : Linux srv339029361 5.15.0-177-generic #187-Ubuntu SMP Sat Apr 11 22:54:33 UTC 2026 x86_64 User : grabn6394 ( 1016) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/grab98.net/public_html/wp-includes/php-ai-client/src/Providers/Http/Util/ |
Upload File : |
<?php
declare (strict_types=1);
namespace WordPress\AiClient\Providers\Http\Util;
use WordPress\AiClient\Providers\Http\DTO\Response;
use WordPress\AiClient\Providers\Http\Exception\ClientException;
use WordPress\AiClient\Providers\Http\Exception\RedirectException;
use WordPress\AiClient\Providers\Http\Exception\ServerException;
/**
* Class with static utility methods to process HTTP responses.
*
* @since 0.1.0
*/
class ResponseUtil
{
/**
* Throws an appropriate exception if the given response is not successful.
*
* This method checks the HTTP status code of the response and throws
* the appropriate exception type based on the status code range:
* - 3xx: RedirectException (redirect responses)
* - 4xx: ClientException (client errors)
* - 5xx: ServerException (server errors)
* - Other unsuccessful responses: RuntimeException (invalid status codes)
*
* @since 0.1.0
*
* @param Response $response The HTTP response to check.
* @throws RedirectException If the response indicates a redirect (3xx).
* @throws ClientException If the response indicates a client error (4xx).
* @throws ServerException If the response indicates a server error (5xx).
* @throws \RuntimeException If the response has an invalid status code.
*/
public static function throwIfNotSuccessful(Response $response): void
{
if ($response->isSuccessful()) {
return;
}
$statusCode = $response->getStatusCode();
// 3xx Redirect Responses
if ($statusCode >= 300 && $statusCode < 400) {
throw RedirectException::fromRedirectResponse($response);
}
// 4xx Client Errors
if ($statusCode >= 400 && $statusCode < 500) {
throw ClientException::fromClientErrorResponse($response);
}
// 5xx Server Errors
if ($statusCode >= 500 && $statusCode < 600) {
throw ServerException::fromServerErrorResponse($response);
}
throw new \RuntimeException(sprintf('Response returned invalid status code: %s', $response->getStatusCode()));
}
}