[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/php-ai-client/src/Providers/Http/Exception/ -> ServerException.php (source)

   1  <?php
   2  
   3  declare (strict_types=1);
   4  namespace WordPress\AiClient\Providers\Http\Exception;
   5  
   6  use WordPress\AiClient\Common\Exception\RuntimeException;
   7  use WordPress\AiClient\Providers\Http\DTO\Response;
   8  use WordPress\AiClient\Providers\Http\Util\ErrorMessageExtractor;
   9  /**
  10   * Exception thrown for 5xx HTTP server errors.
  11   *
  12   * This represents errors where the server failed to fulfill
  13   * a valid request due to internal server errors.
  14   *
  15   * @since 0.2.0
  16   */
  17  class ServerException extends RuntimeException
  18  {
  19      /**
  20       * Creates a ServerException from a server error response.
  21       *
  22       * This method extracts error details from common API response formats
  23       * and creates an exception with a descriptive message and status code.
  24       *
  25       * @since 0.2.0
  26       *
  27       * @param Response $response The HTTP response that failed.
  28       * @return self
  29       */
  30      public static function fromServerErrorResponse(Response $response): self
  31      {
  32          $statusCode = $response->getStatusCode();
  33          $statusTexts = [500 => 'Internal Server Error', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 507 => 'Insufficient Storage', 529 => 'Overloaded'];
  34          if (isset($statusTexts[$statusCode])) {
  35              $errorMessage = sprintf('%s (%d)', $statusTexts[$statusCode], $statusCode);
  36          } else {
  37              $errorMessage = sprintf('Server error (%d): Request was rejected due to server-side issue', $statusCode);
  38          }
  39          // Extract error message from response data using centralized utility
  40          $extractedError = ErrorMessageExtractor::extractFromResponseData($response->getData());
  41          if ($extractedError !== null) {
  42              $errorMessage .= ' - ' . $extractedError;
  43          }
  44          return new self($errorMessage, $response->getStatusCode());
  45      }
  46  }


Generated : Sat Jun 13 09:38:55 2026 Cross-referenced by PHPXref