Files
reader-app/lib/core/network/api_client.dart
T

34 lines
888 B
Dart

import 'package:dio/dio.dart';
import '../storage/secure_store.dart';
class ApiClient {
ApiClient({
required String baseUrl,
required SecureStore secureStore,
}) : _secureStore = secureStore,
dio = Dio(
BaseOptions(
baseUrl: baseUrl,
connectTimeout: const Duration(seconds: 20),
receiveTimeout: const Duration(seconds: 20),
headers: const {'Content-Type': 'application/json'},
),
) {
dio.interceptors.add(
InterceptorsWrapper(
onRequest: (options, handler) async {
final token = await _secureStore.getAccessToken();
if (token != null && token.isNotEmpty) {
options.headers['Authorization'] = 'Bearer $token';
}
handler.next(options);
},
),
);
}
final Dio dio;
final SecureStore _secureStore;
}