WP_AI_Client_HTTP_Client::create_psr_responseprivateWP 7.0.0

Creates a PSR-7 response from a WordPress HTTP response.

Method of the class: WP_AI_Client_HTTP_Client{}

No Hooks.

Returns

ResponseInterface. PSR-7 response.

Usage

// private - for code of main (parent) class only
$result = $this->create_psr_response( $wp_response ): ResponseInterface;
$wp_response(array) (required)
.

Changelog

Since 7.0.0 Introduced.

WP_AI_Client_HTTP_Client::create_psr_response() code WP 7.0

private function create_psr_response( array $wp_response ): ResponseInterface {
	$status_code   = wp_remote_retrieve_response_code( $wp_response );
	$reason_phrase = wp_remote_retrieve_response_message( $wp_response );
	$headers       = wp_remote_retrieve_headers( $wp_response );
	$body          = wp_remote_retrieve_body( $wp_response );

	$response = $this->response_factory->createResponse( (int) $status_code, $reason_phrase );

	if ( $headers instanceof WP_HTTP_Requests_Response ) {
		$headers = $headers->get_headers();
	}

	if ( is_array( $headers ) || $headers instanceof Traversable ) {
		foreach ( $headers as $name => $value ) {
			$response = $response->withHeader( $name, $value );
		}
	}

	if ( ! empty( $body ) ) {
		$stream   = $this->stream_factory->createStream( $body );
		$response = $response->withBody( $stream );
	}

	return $response;
}