Browse Source

fix Bug #7904

master
daivph 5 years ago
parent
commit
a6a0b91ffb
5 changed files with 120 additions and 101 deletions
  1. +21
    -0
      lib/custom_model/ErrorCommon.dart
  2. +91
    -85
      lib/data/api/app_exception.dart
  3. +6
    -14
      lib/data/repository/repository.dart
  4. +1
    -1
      pubspec.lock
  5. +1
    -1
      pubspec.yaml

+ 21
- 0
lib/custom_model/ErrorCommon.dart View File

@@ -0,0 +1,21 @@
class ErrorCommon {
String entityName;
String errorKey;
int status;

ErrorCommon({this.entityName, this.errorKey, this.status});

ErrorCommon.fromJson(Map<String, dynamic> json) {
entityName = json['entityName'];
errorKey = json['errorKey'];
status = json['status'];
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['entityName'] = this.entityName;
data['errorKey'] = this.errorKey;
data['status'] = this.status;
return data;
}
}

+ 91
- 85
lib/data/api/app_exception.dart View File

@@ -1,6 +1,7 @@
import 'dart:convert';

import 'package:dio/dio.dart';
import 'package:farm_tpf/custom_model/ErrorCommon.dart';
import 'package:farm_tpf/utils/const_string.dart';

class AppException {
@@ -24,97 +25,102 @@ class AppException {
break;
case DioErrorType.RESPONSE:
int statusCode = dioError.response.statusCode;
switch (statusCode) {
case 400:
errorDescription = customMessageError ?? exception_dio_400;
break;
case 401:
errorDescription = exception_dio_401;
break;
case 403:
errorDescription = exception_dio_403;
break;
case 404:
errorDescription = exception_dio_404;
break;
case 500:
errorDescription = exception_dio_500;
break;
case 1000:
errorDescription = exception_dio_1000;
break;
case 1001:
errorDescription = exception_dio_1001;
break;
case 1002:
errorDescription = exception_dio_1002;
break;
case 1003:
errorDescription = exception_dio_1003;
break;
case 1004:
errorDescription = exception_dio_1004;
break;
case 1005:
errorDescription = exception_dio_1005;
break;
case 1006:
errorDescription = exception_dio_1006;
break;
case 1007:
errorDescription = exception_dio_1007;
break;
case 1008:
errorDescription = exception_dio_1008;
break;
case 1009:
errorDescription = exception_dio_1009;
break;
case 1010:
errorDescription = exception_dio_1010;
break;
case 1011:
errorDescription = exception_dio_1011;
break;
case 1012:
errorDescription = exception_dio_1012;
break;
case 1013:
errorDescription = exception_dio_1013;
break;
case 1014:
errorDescription = exception_dio_1014;
break;
case 1015:
errorDescription = exception_dio_1015;
break;
case 1016:
errorDescription = exception_dio_1016;
break;
case 1017:
errorDescription = exception_dio_1017;
break;
case 1018:
errorDescription = exception_dio_1018;
break;
case 1019:
errorDescription = exception_dio_1019;
break;
case 1020:
errorDescription = exception_dio_1020;
break;
case 1021:
errorDescription = exception_dio_1021;
break;
default:
errorDescription = exception_common;
if (statusCode == 400) {
errorDescription = customMessageError ?? exception_dio_400;
try {
Map errorMap = jsonDecode(dioError.response.data);
var errorCode = ErrorCommon.fromJson(errorMap).errorKey;

switch (errorCode) {
case '1000':
errorDescription = exception_dio_1000;
break;
case '1001':
errorDescription = exception_dio_1001;
break;
case '1002':
errorDescription = exception_dio_1002;
break;
case '1003':
errorDescription = exception_dio_1003;
break;
case '1004':
errorDescription = exception_dio_1004;
break;
case '1005':
errorDescription = exception_dio_1005;
break;
case '1006':
errorDescription = exception_dio_1006;
break;
case '1007':
errorDescription = exception_dio_1007;
break;
case '1008':
errorDescription = exception_dio_1008;
break;
case '1009':
errorDescription = exception_dio_1009;
break;
case '1010':
errorDescription = exception_dio_1010;
break;
case '1011':
errorDescription = exception_dio_1011;
break;
case '1012':
errorDescription = exception_dio_1012;
break;
case '1013':
errorDescription = exception_dio_1013;
break;
case '1014':
errorDescription = exception_dio_1014;
break;
case '1015':
errorDescription = exception_dio_1015;
break;
case '1016':
errorDescription = exception_dio_1016;
break;
case '1017':
errorDescription = exception_dio_1017;
break;
case '1018':
errorDescription = exception_dio_1018;
break;
case '1019':
errorDescription = exception_dio_1019;
break;
case '1020':
errorDescription = exception_dio_1020;
break;
case '1021':
errorDescription = exception_dio_1021;
break;
default:
errorDescription = customMessageError ?? exception_dio_400;
}
} catch (e) {
//
}
} else if (statusCode == 401) {
errorDescription = exception_dio_401;
} else if (statusCode == 403) {
errorDescription = exception_dio_403;
} else if (statusCode == 404) {
errorDescription = exception_dio_404;
} else if (statusCode == 500) {
errorDescription = exception_dio_500;
} else {
errorDescription = exception_common;
}
break;
case DioErrorType.SEND_TIMEOUT:
errorDescription = exception_dio_send_timeout;
break;
}
} catch (_) {
} catch (e) {
errorDescription = exception_common;
}
return errorDescription;

+ 6
- 14
lib/data/repository/repository.dart View File

@@ -1,5 +1,3 @@
import 'dart:io';

import 'package:dio/dio.dart';
import 'package:dio_http_cache/dio_http_cache.dart';
import 'package:farm_tpf/custom_model/CropPlot.dart';
@@ -7,14 +5,12 @@ import 'package:farm_tpf/custom_model/Device.dart';
import 'package:farm_tpf/custom_model/EnvironmentParameter.dart';
import 'package:farm_tpf/custom_model/Harvest.dart';
import 'package:farm_tpf/custom_model/LocationUnit.dart';
import 'package:farm_tpf/custom_model/NotificationDTO.dart';
import 'package:farm_tpf/custom_model/NotificationObjectDTO.dart';
import 'package:farm_tpf/custom_model/Supply.dart';
import 'package:farm_tpf/custom_model/UpdateNoti.dart';
import 'package:farm_tpf/custom_model/WaterType.dart';
import 'package:farm_tpf/custom_model/user.dart';
import 'package:farm_tpf/custom_model/user_request.dart';
import 'package:farm_tpf/data/api/app_exception.dart';
import 'package:farm_tpf/data/api/dio_provider.dart';
import 'package:farm_tpf/data/api/rest_client.dart';
import 'package:farm_tpf/models/PagedResult.dart';
@@ -154,7 +150,7 @@ class Repository {

//Action
Future<void> createAction(
Function(dynamic) onSuccess, Function(String) onError,
Function(dynamic) onSuccess, Function(dynamic) onError,
{String apiAddAction,
String paramActivity,
String activityAction,
@@ -169,16 +165,14 @@ class Repository {
.post("${ConstCommon.baseUrl}/$apiAddAction", data: formData)
.then((value) {
onSuccess(value.data);
}).catchError((onError) {
onError(AppException.handleError(onError));
});
} catch (e) {
onError(AppException.handleError(e));
} on DioError catch (e) {
onError(e);
}
}

Future<void> updateAction(
Function(dynamic) onSuccess, Function(String) onError,
Function(dynamic) onSuccess, Function(dynamic) onError,
{String apiUpdateAction,
String paramActivity,
String activityAction,
@@ -193,11 +187,9 @@ class Repository {
.post("${ConstCommon.baseUrl}/$apiUpdateAction", data: formData)
.then((value) {
onSuccess(value.data);
}).catchError((onError) {
onError(AppException.handleError(onError));
});
} catch (e) {
onError(AppException.handleError(e));
} on DioError catch (e) {
onError(e);
}
}


+ 1
- 1
pubspec.lock View File

@@ -224,7 +224,7 @@ packages:
name: dio
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.9"
version: "3.0.10"
dio_http_cache:
dependency: "direct main"
description:

+ 1
- 1
pubspec.yaml View File

@@ -19,7 +19,7 @@ dependencies:
shared_preferences: ^0.5.8
flutter_bloc: ^6.0.1
equatable: ^1.2.0
dio: 3.0.9
dio: ^3.0.10
dio_http_cache: ^0.2.9
formz: ^0.3.0
keyboard_dismisser: ^1.0.2

Loading…
Cancel
Save