feat: logout

This commit is contained in:
efrilm
2025-08-16 19:29:21 +07:00
parent e1bde24a83
commit f138e1dcc9
12 changed files with 532 additions and 78 deletions
+8 -1
View File
@@ -2,8 +2,10 @@ import 'package:awesome_dio_interceptor/awesome_dio_interceptor.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:injectable/injectable.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../env.dart';
import '../constant/local_storage_key.dart';
import 'api_failure.dart';
import 'errors/bad_network_error.dart';
import 'errors/bad_request_error.dart';
@@ -22,11 +24,16 @@ import 'interceptors/unauthorized_interceptor.dart';
class ApiClient {
final Dio _dio;
final Env _env;
final SharedPreferences _preferences;
ApiClient(this._dio, this._env) {
ApiClient(this._dio, this._env, this._preferences) {
_dio.options.baseUrl = _env.baseUrl;
_dio.options.validateStatus = (status) => status! < 500;
_dio.options.connectTimeout = const Duration(seconds: 20);
_dio.options.headers = {
'authorization':
'Bearer ${_preferences.getString(LocalStorageKey.token)}',
};
_dio.interceptors.add(BadNetworkErrorInterceptor());
_dio.interceptors.add(BadRequestErrorInterceptor());
_dio.interceptors.add(InternalServerErrorInterceptor());