import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:dio_smart_retry/dio_smart_retry.dart'; Future> getApi(String method, String? data, String? data2) async { final dio = Dio(); dio.interceptors.add(RetryInterceptor(dio: dio, retries: 3, retryDelays: const [Duration(seconds: 1)])); final url = dotenv.env['BACKEND_URL']; late String endpoint; if (data != null && data2 != null) { endpoint = '$method/$data/$data2/fetch-data'; } else if (data != null) { endpoint = '$method/$data/fetch-data'; } else { endpoint = method; } final response = await dio.get('$url/api/$endpoint'); final status = response.statusCode; final result = status == 200 ? json.encode(response.data) : json.encode(null); final Map resultMap = json.decode(result); return resultMap; }