setDio function

Dio setDio()

Implementation

Dio setDio() {
  final dio = Dio();
  dio.options.baseUrl = Constant.baseUrl;

  dio.interceptors.add(
    InterceptorsWrapper(
      onRequest: (options, handler) {
        handler.next(options);
      },
      onResponse: (response, handler) {
        DaakiaVcLogger.logInfo(
          Utils.extractMessage("Success", response.data, response.requestOptions.path),
          attributes: {
            'endpoint': response.requestOptions.path,
            'method': response.requestOptions.method,
            'payload': response.requestOptions.data,
          },
        );
        handler.next(response);
      },
      onError: (DioException e, handler) {
        DaakiaVcLogger.logError(
          Utils.extractMessage("Error", e.requestOptions.data, e.requestOptions.path),
          error: e,
          stackTrace: e.stackTrace,
          attributes: {
            'endpoint': e.requestOptions.path,
            'method': e.requestOptions.method,
            'payload': e.requestOptions.data,
            'response': e.response?.data,
            'statusCode': e.response?.statusCode,
          },
        );
        handler.next(e);
      },
    ),
  );

  return dio;
}