초기 커밋
This commit is contained in:
44
lib/core/network/dio_client.dart
Normal file
44
lib/core/network/dio_client.dart
Normal file
@@ -0,0 +1,44 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:talker_dio_logger/talker_dio_logger.dart';
|
||||
|
||||
import '../constants/api_constants.dart';
|
||||
import '../logging/app_logger.dart';
|
||||
import 'auth_interceptor.dart';
|
||||
import 'token_refresh_interceptor.dart';
|
||||
|
||||
part 'dio_client.g.dart';
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
Dio dio(Ref ref) {
|
||||
final dio = Dio(
|
||||
BaseOptions(
|
||||
baseUrl: ApiConstants.baseUrl,
|
||||
connectTimeout: ApiConstants.connectTimeout,
|
||||
receiveTimeout: ApiConstants.receiveTimeout,
|
||||
sendTimeout: ApiConstants.sendTimeout,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json',
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
final talker = ref.read(appLoggerProvider);
|
||||
|
||||
dio.interceptors.addAll([
|
||||
AuthInterceptor(ref: ref),
|
||||
TokenRefreshInterceptor(ref: ref, dio: dio),
|
||||
TalkerDioLogger(
|
||||
talker: talker,
|
||||
settings: const TalkerDioLoggerSettings(
|
||||
printRequestHeaders: true,
|
||||
printResponseHeaders: false,
|
||||
printResponseData: true,
|
||||
),
|
||||
),
|
||||
]);
|
||||
|
||||
return dio;
|
||||
}
|
||||
Reference in New Issue
Block a user