From ea8dedda46d5f351a827c2daa3b63bcf2b08e1d5 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 18 Dec 2025 10:24:50 +0700 Subject: [PATCH] feat(ai-scribe): Fix generate ai text is failed --- scribe/lib/scribe/ai/data/network/ai_api.dart | 13 +------------ .../scribe/ai/data/network/ai_api_exception.dart | 4 ++++ .../bindings/ai_scribe_bindings.dart | 16 ++++++---------- .../modal/ai_scribe_suggestion_widget.dart | 7 +++++++ 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/scribe/lib/scribe/ai/data/network/ai_api.dart b/scribe/lib/scribe/ai/data/network/ai_api.dart index 567de494c..374effbae 100644 --- a/scribe/lib/scribe/ai/data/network/ai_api.dart +++ b/scribe/lib/scribe/ai/data/network/ai_api.dart @@ -2,7 +2,6 @@ import 'package:core/data/network/dio_client.dart'; import 'package:scribe/scribe/ai/data/model/ai_api_request.dart'; import 'package:scribe/scribe/ai/data/model/ai_api_response.dart'; import 'package:scribe/scribe/ai/data/model/ai_message.dart'; -import 'package:scribe/scribe/ai/data/network/ai_api_exception.dart'; class AIApi { final DioClient _dioClient; @@ -19,17 +18,7 @@ class AIApi { useJMAPHeader: false, ); - if (response.statusCode == 200) { - if (response.data == null || response.data.isEmpty) { - throw AIApiEmptyResponseException(); - } - return AIApiResponse.fromJson(response.data); - } else { - throw AIApiException( - 'AI API returned status code: ${response.statusCode}', - statusCode: response.statusCode, - ); - } + return AIApiResponse.fromJson(response); } AIAPIRequest _generateRequest(String prompt) { diff --git a/scribe/lib/scribe/ai/data/network/ai_api_exception.dart b/scribe/lib/scribe/ai/data/network/ai_api_exception.dart index 70b9b5f47..f31f09e5c 100644 --- a/scribe/lib/scribe/ai/data/network/ai_api_exception.dart +++ b/scribe/lib/scribe/ai/data/network/ai_api_exception.dart @@ -20,3 +20,7 @@ class AIApiNotAvailableException extends AIApiException { class AIApiEmptyResponseException extends AIApiException { AIApiEmptyResponseException() : super('AI API returned empty response'); } + +class GenerateAITextInteractorIsNotRegisteredException extends AIApiException { + GenerateAITextInteractorIsNotRegisteredException() : super('GenerateAITextInteractor is not registered'); +} \ No newline at end of file diff --git a/scribe/lib/scribe/ai/presentation/bindings/ai_scribe_bindings.dart b/scribe/lib/scribe/ai/presentation/bindings/ai_scribe_bindings.dart index ad0e3a947..1c42c897c 100644 --- a/scribe/lib/scribe/ai/presentation/bindings/ai_scribe_bindings.dart +++ b/scribe/lib/scribe/ai/presentation/bindings/ai_scribe_bindings.dart @@ -20,30 +20,26 @@ class AIScribeBindings extends Bindings { } void _bindingsAPI() { - Get.lazyPut(() => AIApi(Get.find(), aiEndpoint)); + Get.put(AIApi(Get.find(), aiEndpoint)); } void _bindingsDataSourceImpl() { - Get.lazyPut(() => AIDataSourceImpl(Get.find())); + Get.put(AIDataSourceImpl(Get.find())); } void _bindingsDataSource() { - Get.lazyPut(() => Get.find()); + Get.put(Get.find()); } void _bindingsRepositoryImpl() { - Get.lazyPut( - () => AIScribeRepositoryImpl(Get.find()), - ); + Get.put(AIScribeRepositoryImpl(Get.find())); } void _bindingsRepository() { - Get.lazyPut(() => Get.find()); + Get.put(Get.find()); } void _bindingsInteractor() { - Get.lazyPut( - () => GenerateAITextInteractor(Get.find()), - ); + Get.put(GenerateAITextInteractor(Get.find())); } } diff --git a/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart b/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart index 9b4c1f3d4..529002370 100644 --- a/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart +++ b/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart @@ -6,6 +6,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:scribe/scribe.dart'; +import 'package:scribe/scribe/ai/data/network/ai_api_exception.dart'; class AiScribeSuggestionWidget extends StatefulWidget { final AIAction aiAction; @@ -50,6 +51,12 @@ class _AiScribeSuggestionWidgetModalState widget.aiAction, widget.content, ); + } else { + _valueNotifier.value = dartz.Left( + GenerateAITextFailure( + GenerateAITextInteractorIsNotRegisteredException(), + ), + ); } }