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

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

import 'dart:convert'; import 'dart:convert';


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


class AppException { class AppException {
break; break;
case DioErrorType.RESPONSE: case DioErrorType.RESPONSE:
int statusCode = dioError.response.statusCode; 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; break;
case DioErrorType.SEND_TIMEOUT: case DioErrorType.SEND_TIMEOUT:
errorDescription = exception_dio_send_timeout; errorDescription = exception_dio_send_timeout;
break; break;
} }
} catch (_) {
} catch (e) {
errorDescription = exception_common; errorDescription = exception_common;
} }
return errorDescription; return errorDescription;

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

import 'dart:io';

import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:dio_http_cache/dio_http_cache.dart'; import 'package:dio_http_cache/dio_http_cache.dart';
import 'package:farm_tpf/custom_model/CropPlot.dart'; import 'package:farm_tpf/custom_model/CropPlot.dart';
import 'package:farm_tpf/custom_model/EnvironmentParameter.dart'; import 'package:farm_tpf/custom_model/EnvironmentParameter.dart';
import 'package:farm_tpf/custom_model/Harvest.dart'; import 'package:farm_tpf/custom_model/Harvest.dart';
import 'package:farm_tpf/custom_model/LocationUnit.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/NotificationObjectDTO.dart';
import 'package:farm_tpf/custom_model/Supply.dart'; import 'package:farm_tpf/custom_model/Supply.dart';
import 'package:farm_tpf/custom_model/UpdateNoti.dart'; import 'package:farm_tpf/custom_model/UpdateNoti.dart';
import 'package:farm_tpf/custom_model/WaterType.dart'; import 'package:farm_tpf/custom_model/WaterType.dart';
import 'package:farm_tpf/custom_model/user.dart'; import 'package:farm_tpf/custom_model/user.dart';
import 'package:farm_tpf/custom_model/user_request.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/dio_provider.dart';
import 'package:farm_tpf/data/api/rest_client.dart'; import 'package:farm_tpf/data/api/rest_client.dart';
import 'package:farm_tpf/models/PagedResult.dart'; import 'package:farm_tpf/models/PagedResult.dart';


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


Future<void> updateAction( Future<void> updateAction(
Function(dynamic) onSuccess, Function(String) onError,
Function(dynamic) onSuccess, Function(dynamic) onError,
{String apiUpdateAction, {String apiUpdateAction,
String paramActivity, String paramActivity,
String activityAction, String activityAction,
.post("${ConstCommon.baseUrl}/$apiUpdateAction", data: formData) .post("${ConstCommon.baseUrl}/$apiUpdateAction", data: formData)
.then((value) { .then((value) {
onSuccess(value.data); 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

name: dio name: dio
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.9"
version: "3.0.10"
dio_http_cache: dio_http_cache:
dependency: "direct main" dependency: "direct main"
description: description:

+ 1
- 1
pubspec.yaml View File

shared_preferences: ^0.5.8 shared_preferences: ^0.5.8
flutter_bloc: ^6.0.1 flutter_bloc: ^6.0.1
equatable: ^1.2.0 equatable: ^1.2.0
dio: 3.0.9
dio: ^3.0.10
dio_http_cache: ^0.2.9 dio_http_cache: ^0.2.9
formz: ^0.3.0 formz: ^0.3.0
keyboard_dismisser: ^1.0.2 keyboard_dismisser: ^1.0.2

Loading…
Cancel
Save