Changeset 14593
- Timestamp:
- 11/07/2025 08:56:46 AM (12 hours ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/inc/ai/class-openai-client.php
r14585 r14593 179 179 if ( is_wp_error( $response ) ) { 180 180 $this->set_error( 'API request failed: ' . $response->get_error_message() ); 181 $this->log_error( $endpoint, $response->get_error_message() );182 return false; 183 } 184 185 $status_code = wp_remote_retrieve_response_code( $response );181 $this->log_error( $endpoint, $response->get_error_message(), $response ); 182 return false; 183 } 184 185 $status_code = wp_remote_retrieve_response_code( $response ); 186 186 if ( 200 !== $status_code ) { 187 187 $error_message = wp_remote_retrieve_response_message( $response ); 188 188 $this->set_error( "API request failed with status {$status_code}: {$error_message}" ); 189 $this->log_error( $endpoint, "Status {$status_code}: {$error_message}" );190 return false; 191 } 192 189 $this->log_error( $endpoint, "Status {$status_code}: {$error_message}", $response ); 190 return false; 191 } 192 193 193 $body_content = wp_remote_retrieve_body( $response ); 194 $decoded = json_decode( $body_content, true );194 $decoded = json_decode( $body_content, true ); 195 195 if ( json_last_error() !== JSON_ERROR_NONE ) { 196 196 $this->set_error( 'Failed to decode API response: ' . json_last_error_msg() ); 197 $this->log_error( $endpoint, 'JSON decode error: ' . json_last_error_msg() );197 $this->log_error( $endpoint, 'JSON decode error: ' . json_last_error_msg(), $response ); 198 198 return false; 199 199 } … … 263 263 * Log an error. 264 264 * 265 * Ignores 429 errors in production to reduce log noise. 266 * 265 267 * @param string $endpoint Endpoint that failed. 266 268 * @param string $message Error message. 267 */ 268 private function log_error( string $endpoint, string $message ): void { 269 * @param mixed $response Optional. Response object (WP_Error or HTTP response array). 270 */ 271 private function log_error( string $endpoint, string $message, $response = null ): void { 269 272 if ( defined( 'WPORG_SANDBOXED' ) && WPORG_SANDBOXED ) { 270 273 wp_send_json_error( array( 'OpenAI API Error [' . $endpoint . ']', $message ) ); 271 274 } else { 275 if ( $response && ! is_wp_error( $response ) ) { 276 $status_code = wp_remote_retrieve_response_code( $response ); 277 if ( 429 === $status_code ) { 278 return; 279 } 280 } 272 281 trigger_error( 'OpenAI API Error [' . $endpoint . ']: ' . $message, E_USER_WARNING ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 273 282 }
Note: See TracChangeset
for help on using the changeset viewer.