import 'package:dio/dio.dart'; import '../core/cache_manager.dart'; import '../core/constants/api_url.dart'; class ApiClient { late final Dio dio; ApiClient() { dio = Dio(BaseOptions( baseUrl: ApiUrl.baseUrl, connectTimeout: const Duration(seconds: 30), receiveTimeout: const Duration(seconds: 30), headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', }, )); dio.interceptors.add(InterceptorsWrapper( onRequest: (options, handler) async { final token = CacheManager.authBox.get('auth_token'); if (token != null && token.isNotEmpty) { options.headers['Authorization'] = 'Bearer $token'; } return handler.next(options); }, onResponse: (response, handler) { return handler.next(response); }, onError: (DioException e, handler) { return handler.next(e); }, )); } }