28 lines
933 B
Dart
28 lines
933 B
Dart
import 'dart:convert';
|
|
import 'dart:developer';
|
|
import 'package:dio/dio.dart';
|
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
|
import 'package:dio_smart_retry/dio_smart_retry.dart';
|
|
|
|
Future<Map<dynamic, dynamic>> 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<dynamic, dynamic> resultMap = json.decode(result);
|
|
|
|
return resultMap;
|
|
}
|