LCOV - code coverage report
Current view: top level - core/network - failure_interceptor.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 20 20 100.0 %
Date: 2026-03-02 18:37:46 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:tech_proof/core/error/error_mapper.dart';
       2             : import 'package:tech_proof/core/error/global_error_bus.dart';
       3             : import 'package:tech_proof/core/error/logger_service.dart';
       4             : import 'package:dio/dio.dart';
       5             : 
       6             : class FailureInterceptor extends Interceptor {
       7           1 :   @override
       8             :   void onError(DioException err, ErrorInterceptorHandler handler) {
       9           2 :     final statusCode = err.response?.statusCode;
      10             :     final message =
      11           4 :         err.response?.data.toString() ?? err.message ?? "Unknown Dio error";
      12             : 
      13           2 :     LoggerService.error("Dio", message, err.stackTrace);
      14             : 
      15           1 :     if (statusCode == 401) {
      16           2 :       GlobalErrorBus.dispatch(AppError("unauthorized", "Session expired"));
      17           1 :     } else if (statusCode == 500) {
      18           1 :       GlobalErrorBus.dispatch(
      19           1 :         AppError("server_error", "Internal Server Error"),
      20             :       );
      21           1 :     } else if (statusCode == 404) {
      22           2 :       GlobalErrorBus.dispatch(AppError("server_error", "Resource Not Found"));
      23           2 :     } else if (err.type == DioExceptionType.connectionTimeout) {
      24           2 :       GlobalErrorBus.dispatch(AppError("network", "Connection Timeout"));
      25             :     }
      26           1 :     final failure = mapDioException(err);
      27             : 
      28           1 :     final newError = DioException(
      29           1 :       requestOptions: err.requestOptions,
      30           1 :       response: err.response,
      31           1 :       type: err.type,
      32             :       error: failure,
      33           1 :       message: err.message,
      34             :     );
      35           1 :     handler.next(newError);
      36             :   }
      37             : }

Generated by: LCOV version 1.14