Skip to content

Commit

Permalink
Merge d8e0411 into 89d4c3a
Browse files Browse the repository at this point in the history
  • Loading branch information
luca-vz committed Oct 12, 2023
2 parents 89d4c3a + d8e0411 commit 98cfd0d
Show file tree
Hide file tree
Showing 13 changed files with 33 additions and 21 deletions.
4 changes: 2 additions & 2 deletions lib/model/exceptions/bad_request_error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class BadRequestError extends NetworkError {
static const statusCode = HttpStatus.badRequest;

BadRequestError(
super.dioError, {
super.dioException, {
super.statusCodeValue,
});

Expand All @@ -25,7 +25,7 @@ class BadRequestError extends NetworkError {
final dynamic data = err.response?.data;
if (data is! Map) return BadRequestError(err);
if (!data.containsKey('code')) return BadRequestError(err);
final code = data['code'] as String;
final code = data['code'] as String?;
switch (code) {
default:
return BadRequestError(err);
Expand Down
4 changes: 2 additions & 2 deletions lib/model/exceptions/forbidden_error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class ForbiddenError extends NetworkError {
static const statusCode = HttpStatus.forbidden;

ForbiddenError(
super.dioError, {
super.dioException, {
super.statusCodeValue,
});

Expand All @@ -25,7 +25,7 @@ class ForbiddenError extends NetworkError {
final dynamic data = err.response?.data;
if (data is! Map) return ForbiddenError(err);
if (!data.containsKey('code')) return ForbiddenError(err);
final code = data['code'] as String;
final code = data['code'] as String?;
switch (code) {
default:
return ForbiddenError(err);
Expand Down
7 changes: 2 additions & 5 deletions lib/model/exceptions/general_error.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
import 'package:flutter_template/util/locale/localization_keys.dart';
import 'package:icapps_architecture/icapps_architecture.dart';

class GeneralNetworkError extends NetworkError {
GeneralNetworkError(super.dioError);
class GeneralError with LocalizedError {
GeneralError() : super();

@override
String getLocalizedKey() => LocalizationKeys.errorGeneral;

@override
String? get getErrorCode => null;
}
7 changes: 5 additions & 2 deletions lib/model/exceptions/general_network_error.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import 'package:flutter_template/util/locale/localization_keys.dart';
import 'package:icapps_architecture/icapps_architecture.dart';

class GeneralError with LocalizedError {
GeneralError() : super();
class GeneralNetworkError extends NetworkError {
GeneralNetworkError(super.dioException);

@override
String getLocalizedKey() => LocalizationKeys.errorGeneral;

@override
String? get getErrorCode => null;
}
2 changes: 1 addition & 1 deletion lib/model/exceptions/internal_server_error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class InternalServerError extends NetworkError {
static const statusCode = HttpStatus.internalServerError;

InternalServerError(
super.dioError, {
super.dioException, {
super.statusCodeValue,
});

Expand Down
2 changes: 1 addition & 1 deletion lib/model/exceptions/no_internet_error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'package:flutter_template/util/locale/localization_keys.dart';
import 'package:icapps_architecture/icapps_architecture.dart';

class NoInternetError extends NetworkError {
NoInternetError(super.dioError);
NoInternetError(super.dioException);

@override
String getLocalizedKey() => LocalizationKeys.errorNoNetwork;
Expand Down
14 changes: 13 additions & 1 deletion lib/model/exceptions/un_authorized_error.dart
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import 'dart:io';

import 'package:dio/dio.dart';
import 'package:flutter_template/util/locale/localization_keys.dart';
import 'package:icapps_architecture/icapps_architecture.dart';

class UnAuthorizedError extends NetworkError {
static const statusCode = HttpStatus.unauthorized;

UnAuthorizedError(
super.dioError, {
super.dioException, {
super.statusCodeValue,
});

Expand All @@ -19,4 +20,15 @@ class UnAuthorizedError extends NetworkError {
if (statusCodeValue == null) return '$statusCode';
return '$statusCode [$statusCodeValue]';
}

static NetworkError parseError(DioException err) {
final dynamic data = err.response?.data;
if (data is! Map) return UnAuthorizedError(err);
if (!data.containsKey('code')) return UnAuthorizedError(err);
final code = data['code'] as String?;
switch (code) {
default:
return UnAuthorizedError(err);
}
}
}
4 changes: 2 additions & 2 deletions lib/util/interceptor/network_error_interceptor.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'package:dio/dio.dart';
import 'package:flutter_template/model/exceptions/bad_request_error.dart';
import 'package:flutter_template/model/exceptions/code_error.dart';
import 'package:flutter_template/model/exceptions/forbidden_error.dart';
import 'package:flutter_template/model/exceptions/general_error.dart';
import 'package:flutter_template/model/exceptions/general_network_error.dart';
import 'package:flutter_template/model/exceptions/internal_server_error.dart';
import 'package:flutter_template/model/exceptions/no_internet_error.dart';
import 'package:flutter_template/model/exceptions/un_authorized_error.dart';
Expand Down Expand Up @@ -31,7 +31,7 @@ class NetworkErrorInterceptor extends SimpleInterceptor {
final statusCode = error.response?.statusCode;
switch (statusCode) {
case UnAuthorizedError.statusCode:
return UnAuthorizedError(error);
return UnAuthorizedError.parseError(error);
case BadRequestError.statusCode:
return BadRequestError.parseError(error);
case ForbiddenError.statusCode:
Expand Down
2 changes: 1 addition & 1 deletion lib/util/interceptor/network_log_interceptor.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:io';

import 'package:dio/dio.dart';
import 'package:flutter_template/model/exceptions/general_error.dart';
import 'package:flutter_template/model/exceptions/general_network_error.dart';
import 'package:icapps_architecture/icapps_architecture.dart';
import 'package:injectable/injectable.dart';

Expand Down
2 changes: 1 addition & 1 deletion test/repository/refresh/refresh_repository_test.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:dio/dio.dart';
import 'package:flutter_template/model/exceptions/general_network_error.dart';
import 'package:flutter_template/model/exceptions/general_error.dart';
import 'package:flutter_template/model/exceptions/un_authorized_error.dart';
import 'package:flutter_template/repository/refresh/refresh_repository.dart';
import 'package:flutter_template/repository/secure_storage/auth/auth_storage.dart';
Expand Down
2 changes: 1 addition & 1 deletion test/util/interceptor/network_error_interceptor_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_template/model/exceptions/bad_request_error.dart';
import 'package:flutter_template/model/exceptions/code_error.dart';
import 'package:flutter_template/model/exceptions/forbidden_error.dart';
import 'package:flutter_template/model/exceptions/general_error.dart';
import 'package:flutter_template/model/exceptions/general_network_error.dart';
import 'package:flutter_template/model/exceptions/internal_server_error.dart';
import 'package:flutter_template/model/exceptions/un_authorized_error.dart';
import 'package:flutter_template/util/env/flavor_config.dart';
Expand Down
2 changes: 1 addition & 1 deletion test/viewmodel/login/login_viewmodel_test.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter_template/model/exceptions/general_network_error.dart';
import 'package:flutter_template/model/exceptions/general_error.dart';
import 'package:flutter_template/navigator/main_navigator.dart';
import 'package:flutter_template/navigator/onboarding_navigator.dart';
import 'package:flutter_template/repository/login/login_repository.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter_template/model/exceptions/general_network_error.dart';
import 'package:flutter_template/model/exceptions/general_error.dart';
import 'package:flutter_template/model/webservice/todo/todo.dart';
import 'package:flutter_template/navigator/main_navigator.dart';
import 'package:flutter_template/repository/todo/todo_repository.dart';
Expand Down

0 comments on commit 98cfd0d

Please sign in to comment.