Browse Source

[new]增加异常code处理

zk 1 year ago
parent
commit
e26790f118

+ 1 - 1
assets/string/base/string.xml

@@ -75,7 +75,6 @@
     <string name="account_profession_suggest">请输入行业</string>
     <string name="account_post_suggest">请输入岗位</string>
     <string name="talk_uploading_tips">小听正在上传谈话,请勿关闭小听~</string>
-    <string name="no_login">未登录</string>
     <string name="done">完成</string>
     <string name="version_latest">目前已是最新版</string>
     <string name="analysis">分析中</string>
@@ -89,4 +88,5 @@
     <string name="account_logout_tips">确定要注销此账号吗?一旦注销,账号信息将永久消失,无法恢复。
     </string>
     <string name="account_logout_success">注销成功</string>
+    <string name="error_code_no_login">账号未登录</string>
 </resources>

+ 5 - 2
lib/data/repositories/agenda_repository.dart

@@ -1,6 +1,7 @@
 import 'package:electronic_assistant/base/base_controller.dart';
 import 'package:electronic_assistant/data/api/request/talk_request.dart';
 import 'package:electronic_assistant/data/bean/agenda.dart';
+import 'package:electronic_assistant/data/consts/error_code.dart';
 import 'package:electronic_assistant/resource/string.gen.dart';
 import 'package:get/get.dart';
 import 'package:get/get_rx/src/rx_types/rx_types.dart';
@@ -66,7 +67,8 @@ class AgendaRepository {
 
   Future<void> agendaFinish(String? id, bool complete) async {
     if (!accountRepository.isLogin.value) {
-      throw ServerErrorException(-1, StringName.noLogin.tr);
+      throw ServerErrorException(
+          ErrorCode.errorCodeNoLogin, StringName.errorCodeNoLogin.tr);
     }
     return atmobApi
         .agendaFinish(AgendaStatusRequest(id, complete))
@@ -89,7 +91,8 @@ class AgendaRepository {
 
   Future<void> agendaTodo(String id, bool isTodo) async {
     if (!accountRepository.isLogin.value) {
-      throw ServerErrorException(-1, StringName.noLogin.tr);
+      throw ServerErrorException(
+          ErrorCode.errorCodeNoLogin, StringName.errorCodeNoLogin.tr);
     }
     return atmobApi
         .agendaTodo(AgendaTodoRequest(id, isTodo))

+ 12 - 2
lib/utils/error_handler.dart

@@ -2,6 +2,7 @@ import 'package:electronic_assistant/utils/http_handler.dart';
 import 'package:electronic_assistant/utils/toast_util.dart';
 import 'package:get/get.dart';
 
+import '../data/consts/error_code.dart';
 import '../resource/string.gen.dart';
 
 class ErrorHandler {
@@ -15,11 +16,20 @@ class ErrorHandler {
   }
 
   static String _getToastMessageFromError(ServerErrorException error) {
-    return error.message ?? StringName.networkError.tr;
+    return getErrorCodeMsg(error.code) ?? StringName.networkError.tr;
+  }
+
+  static String? getErrorCodeMsg(int? code) {
+    String? msg;
+    switch (code) {
+      case ErrorCode.errorCodeNoLogin:
+        msg = StringName.errorCodeNoLogin.tr;
+        break;
+    }
+    return msg;
   }
 
   static String _getDefaultToastMessage(String? message) {
     return message ?? StringName.networkError.tr;
   }
 }
-