diff --git a/includes/Services/REST_Routes/Service_Generate_Content_REST_Route.php b/includes/Services/REST_Routes/Service_Generate_Content_REST_Route.php index 40b9142..65ffb66 100644 --- a/includes/Services/REST_Routes/Service_Generate_Content_REST_Route.php +++ b/includes/Services/REST_Routes/Service_Generate_Content_REST_Route.php @@ -131,7 +131,7 @@ protected function handle_request( WP_REST_Request $request ): WP_REST_Response $service = $this->services_api->get_available_service( $request['slug'] ); - if ( isset( $request['model'] ) ) { + if ( isset( $request['model'] ) && '' !== $request['model'] ) { $model = $request['model']; } else { // For now, we just use the first model available. TODO: Improve this later, e.g. by specifying a default. @@ -180,8 +180,9 @@ protected function handle_request( WP_REST_Request $request ): WP_REST_Response throw REST_Exception::create( 'rest_generating_content_failed', sprintf( - /* translators: %s: original error message */ - esc_html__( 'Generating content failed: %s', 'wp-starter-plugin' ), + /* translators: 1: model slug, 2: original error message */ + esc_html__( 'Generating content with model %1$s failed: %2$s', 'wp-starter-plugin' ), + esc_html( $model->get_model_slug() ), esc_html( $e->getMessage() ) ), 500 @@ -190,8 +191,9 @@ protected function handle_request( WP_REST_Request $request ): WP_REST_Response throw REST_Exception::create( 'rest_invalid_content', sprintf( - /* translators: %s: original error message */ - esc_html__( 'Invalid content provided: %s', 'wp-starter-plugin' ), + /* translators: 1: model slug, 2: original error message */ + esc_html__( 'Invalid content provided to model %1$s: %2$s', 'wp-starter-plugin' ), + esc_html( $model->get_model_slug() ), esc_html( $e->getMessage() ) ), 400 diff --git a/src/ai-store/generative-ai-service.js b/src/ai-store/generative-ai-service.js index 2f5719b..9b847cf 100644 --- a/src/ai-store/generative-ai-service.js +++ b/src/ai-store/generative-ai-service.js @@ -95,15 +95,19 @@ export class GenerativeAiService { } } - return await apiFetch( { - path: `/wp-starter-plugin/v1/services/${ this.slug }:generate-content`, - method: 'POST', - data: { - content, - model: model || '', - modelParams: modelParams || {}, - }, - } ); + try { + return await apiFetch( { + path: `/wp-starter-plugin/v1/services/${ this.slug }:generate-content`, + method: 'POST', + data: { + content, + model: model || '', + modelParams: modelParams || {}, + }, + } ); + } catch ( error ) { + throw new Error( error.message || error.code || error ); + } } }