runable
This commit is contained in:
85
lib/core/network/dio_client.dart
Normal file
85
lib/core/network/dio_client.dart
Normal file
@@ -0,0 +1,85 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import '../constants/api_constants.dart';
|
||||
import 'api_interceptor.dart';
|
||||
|
||||
/// Dio HTTP client configuration
|
||||
class DioClient {
|
||||
late final Dio _dio;
|
||||
|
||||
DioClient() {
|
||||
_dio = Dio(
|
||||
BaseOptions(
|
||||
baseUrl: ApiConstants.fullBaseUrl,
|
||||
connectTimeout: Duration(milliseconds: ApiConstants.connectTimeout),
|
||||
receiveTimeout: Duration(milliseconds: ApiConstants.receiveTimeout),
|
||||
sendTimeout: Duration(milliseconds: ApiConstants.sendTimeout),
|
||||
headers: {
|
||||
ApiConstants.contentType: ApiConstants.applicationJson,
|
||||
ApiConstants.accept: ApiConstants.applicationJson,
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
_dio.interceptors.add(ApiInterceptor());
|
||||
}
|
||||
|
||||
Dio get dio => _dio;
|
||||
|
||||
/// GET request
|
||||
Future<Response> get(
|
||||
String path, {
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
return await _dio.get(
|
||||
path,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
|
||||
/// POST request
|
||||
Future<Response> post(
|
||||
String path, {
|
||||
dynamic data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
return await _dio.post(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
|
||||
/// PUT request
|
||||
Future<Response> put(
|
||||
String path, {
|
||||
dynamic data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
return await _dio.put(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
|
||||
/// DELETE request
|
||||
Future<Response> delete(
|
||||
String path, {
|
||||
dynamic data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
return await _dio.delete(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user