ocbo-esign-mobile/lib/functions/get_api.dart
2025-12-11 15:29:14 +08:00

27 lines
908 B
Dart

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<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;
}