12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import 'package:dio/dio.dart';
- import 'package:naiyouwl/app/data/model/LoginMode.dart';
- import '../data/model/SysConfig.dart';
- import 'dio_client.dart';
- class ApiService {
- static final ApiService _instance = ApiService._internal();
- final DioClient _dioClient = DioClient();
- factory ApiService() => _instance;
- ApiService._internal();
- Future<SysConfig> fetchSysConfig(String path) async {
- final Map<String, dynamic> data = await _requestWrapper(() => _dioClient.get(path));
- return SysConfig.fromJson(data);
- }
- Future<LoginMode> login(String path, {Map<String, dynamic>? data}) async {
- final Map<String, dynamic> retData =await _requestWrapper(() => _dioClient.post(path,data: data));
- return LoginMode.fromJson(retData);
- }
- Future<Map<String, dynamic>> fetchData(String path, {Map<String, dynamic>? queryParameters}) async {
- return await _dioClient.get(path, queryParameters: queryParameters);
- }
- Future<Map<String, dynamic>> createData(String path, {Map<String, dynamic>? data}) async {
- return await _dioClient.post(path, data: data);
- }
- Future<Map<String, dynamic>> updateData(String path, {Map<String, dynamic>? data}) async {
- return await _dioClient.put(path, data: data);
- }
- Future<void> downloadFile(String urlPath, String savePath) async {
- await _dioClient.download(urlPath, savePath);
- }
- Future<Map<String, dynamic>> _requestWrapper(Future<Map<String, dynamic>> Function() apiCall) async {
- try {
- return await apiCall();
- } catch (e) {
- if (e is DioError && e.error is AppException) {
- throw e.error; // 抛出自定义的AppException
- } else {
- throw Exception('API request failed: $e');
- }
- }
- }
- }
|