Yoast\WP\SEO\AI_HTTP_Request\Application

Request_Handler::handlepublicYoast 1.0

Executes the request to the API.

Метод класса: Request_Handler{}

Хуков нет.

Возвращает

Response. The response from the API.

Использование

$Request_Handler = new Request_Handler();
$Request_Handler->handle( $request ): Response;
$request(Request) (обязательный)
The request to execute.

Код Request_Handler::handle() Yoast 27.7

public function handle( Request $request ): Response {
			$api_response = $this->api_client->perform_request(
				$request->get_action_path(),
				$request->get_body(),
				$request->get_headers(),
				$request->is_post(),
			);

	$response = $this->response_parser->parse( $api_response );

	// phpcs:disable WordPress.Security.EscapeOutput.ExceptionNotEscaped -- false positive.
	switch ( $response->get_response_code() ) {
		case 200:
			return $response;
		case 401:
			throw new Unauthorized_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
		case 402:
			throw new Payment_Required_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code(), null, $response->get_missing_licenses() );
		case 403:
			throw new Forbidden_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
		case 404:
			throw new Not_Found_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
		case 408:
			throw new Request_Timeout_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
		case 429:
			throw new Too_Many_Requests_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code(), null, $response->get_missing_licenses() );
		case 500:
			throw new Internal_Server_Error_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
		case 503:
			throw new Service_Unavailable_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
		default:
			throw new Bad_Request_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
	}
	// phpcs:enable WordPress.Security.EscapeOutput.ExceptionNotEscaped
}