setDio function

Dio setDio()

Implementation

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

  dio.interceptors.add(
    InterceptorsWrapper(
      onRequest: (options, handler) {
        // Optionally capture request payload here if needed
        handler.next(options);
      },
      onResponse: (response, handler) {
        DatadogLoggerHelper.saveDatadogLog(
          level: DatadogLogLevel.info,
          message: Utils.extractMessage(
            "Success",
            response.data,
            response.requestOptions.path,
          ),
          requestOptions: response.requestOptions,
          dioException: null,
          payload: response.requestOptions.data,
        );
        handler.next(response);
      },
      onError: (DioException e, handler) {
        DatadogLoggerHelper.saveDatadogLog(
          level: DatadogLogLevel.error,
          message: Utils.extractMessage(
            "Error",
            e.requestOptions.data,
            e.requestOptions.path,
          ),
          requestOptions: e.requestOptions,
          dioException: e,
          payload: e.requestOptions.data,
        );
        handler.next(e);
      },
    ),
  );

  return dio;
}