2025-12-03 11:57:05 +05:30
|
|
|
import 'package:dio/dio.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import '../config/api_config.dart';
|
|
|
|
|
import '../providers/auth_provider.dart';
|
|
|
|
|
import 'token_interceptor.dart';
|
|
|
|
|
|
|
|
|
|
class DioClient {
|
2025-12-16 10:24:16 +05:30
|
|
|
static Dio? _dio;
|
|
|
|
|
|
|
|
|
|
static const String baseUrl = "http://10.11.236.74:8000";
|
2025-12-03 11:57:05 +05:30
|
|
|
|
|
|
|
|
static Dio getInstance(BuildContext context) {
|
|
|
|
|
if (_dio == null) {
|
|
|
|
|
_dio = Dio(
|
|
|
|
|
BaseOptions(
|
|
|
|
|
baseUrl: ApiConfig.baseUrl,
|
|
|
|
|
connectTimeout: const Duration(seconds: 15),
|
|
|
|
|
receiveTimeout: const Duration(seconds: 15),
|
|
|
|
|
headers: {
|
|
|
|
|
"Accept": "application/json",
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
final authProvider = Provider.of<AuthProvider>(context, listen: false);
|
|
|
|
|
|
|
|
|
|
_dio!.interceptors.add(
|
|
|
|
|
TokenInterceptor(authProvider, context, _dio!),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _dio!;
|
|
|
|
|
}
|
|
|
|
|
}
|