// common_api.dart import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; import '../../Api_Helper/base_manager.dart'; class NetworkApiService { final Dio _dio = Dio(); // Common function for GET requests Future get(String url, {Map? queryParameters}) async { if (kDebugMode) { print("api url is >>> $url"); } Response response; try { response = await _dio.get(url); if (response.statusCode == 201 || response.statusCode == 200) { return ResponseData("success", ResponseStatus.SUCCESS, data: response.data); } else { try { return ResponseData( response.data['message'].toString(), ResponseStatus.FAILED); } catch (_) { return ResponseData( data: response.data, response.statusMessage!, ResponseStatus.FAILED); }} } catch (e) { return ResponseData( "Something went wrong", ResponseStatus.FAILED); } } // Common function for POST requests Future post(String url, dynamic data) async { if (kDebugMode) { print("data >>> $data"); print("api url is >>> $url"); } try { var response= await _dio.post(url, data: data); if (response.statusCode == 201 || response.statusCode == 200) { return ResponseData("success", ResponseStatus.SUCCESS, data: response.data); }else { try { return ResponseData( response.data['message'].toString(), ResponseStatus.FAILED); } catch (_) { return ResponseData( data: response.data, response.statusMessage!, ResponseStatus.FAILED); }} } catch (e) { return ResponseData( "Oops something went wrong", ResponseStatus.FAILED); } } // Common function for PUT requests Future put(String url, dynamic data) async { try { return await _dio.put(url, data: data); } catch (e) { throw _handleError(e); } } // Common function for DELETE requests Future delete(String url) async { try { return await _dio.delete(url); } catch (e) { throw _handleError(e); } } // Handle Dio errors dynamic _handleError(dynamic e) { if (e is DioException) { // Handle Dio specific errors (e.g., DioErrorType.connectTimeout, DioErrorType.response) return e.message; // Or return a custom error message } else { return 'An error occurred'; // Generic error message for other types of errors } } }