globalApisGetResponseDio method

Future<Response?> globalApisGetResponseDio({
  1. required String apiUrl,
  2. required Map<String, dynamic> request,
  3. bool showSuccessMessage = false,
  4. bool showErrorMessage = true,
  5. bool showPrints = false,
  6. bool load = false,
  7. bool jsonConversion = true,
  8. ApiMethod apiMethod = ApiMethod.post,
  9. Map<String, String>? customHeaders,
  10. CancelToken? cancelToken,
})

Implementation

Future<Response<dynamic>?> globalApisGetResponseDio({
  required String apiUrl,
  required Map<String, dynamic> request,
  bool showSuccessMessage = false,
  bool showErrorMessage = true,
  bool showPrints = false,
  bool load = false,
  bool jsonConversion = true,
  ApiMethod apiMethod = ApiMethod.post,
  Map<String, String>? customHeaders,
  CancelToken? cancelToken,
}) async {
  try {
    late Response response;

    switch (apiMethod) {
      case ApiMethod.get:
        response = await _dio.get(
          apiUrl,
          queryParameters: request,
          options: Options(headers: customHeaders),
          cancelToken: cancelToken,
        );
        break;

      case ApiMethod.post:
        response = await _dio.post(
          apiUrl,
          data: jsonConversion ? request : FormData.fromMap(request),
          options: Options(headers: customHeaders),
          cancelToken: cancelToken,
        );
        break;

      case ApiMethod.put:
        response = await _dio.put(
          apiUrl,
          data: jsonConversion ? request : FormData.fromMap(request),
          options: Options(headers: customHeaders),
          cancelToken: cancelToken,
        );
        break;

      case ApiMethod.patch:
        response = await _dio.patch(
          apiUrl,
          data: jsonConversion ? request : FormData.fromMap(request),
          options: Options(headers: customHeaders),
          cancelToken: cancelToken,
        );
        break;

      case ApiMethod.delete:
        response = await _dio.delete(
          apiUrl,
          data: request,
          options: Options(headers: customHeaders),
          cancelToken: cancelToken,
        );
        break;
    }
    if (showPrints == true) {
      print("my response data is--------------->${response.data}");
    }
    return response;
  } on DioException catch (e) {
    debugPrint('DIO ERROR => ${e.message}');

    if (e.type == DioExceptionType.connectionError) {
      debugPrint("Internet Connection not available");
    }
    return e?.response;
  }
}