fix: token
This commit is contained in:
parent
7d24b3296d
commit
d3543149f2
@ -2,10 +2,8 @@ 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';
|
||||
@ -24,16 +22,11 @@ import 'interceptors/unauthorized_interceptor.dart';
|
||||
class ApiClient {
|
||||
final Dio _dio;
|
||||
final Env _env;
|
||||
final SharedPreferences _preferences;
|
||||
|
||||
ApiClient(this._dio, this._env, this._preferences) {
|
||||
ApiClient(this._dio, this._env) {
|
||||
_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());
|
||||
|
||||
@ -1,4 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import '../../injection.dart';
|
||||
import '../constant/local_storage_key.dart';
|
||||
|
||||
void dismissKeyboard(BuildContext context) {
|
||||
final currentFocus = FocusScope.of(context);
|
||||
@ -6,3 +10,10 @@ void dismissKeyboard(BuildContext context) {
|
||||
FocusManager.instance.primaryFocus?.unfocus();
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> getAuthorizationHeader() {
|
||||
return {
|
||||
'Authorization':
|
||||
'Bearer ${getIt<SharedPreferences>().getString(LocalStorageKey.token)}',
|
||||
};
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import 'package:injectable/injectable.dart';
|
||||
import '../../../common/api/api_client.dart';
|
||||
import '../../../common/api/api_failure.dart';
|
||||
import '../../../common/extension/extension.dart';
|
||||
import '../../../common/function/app_function.dart';
|
||||
import '../../../common/url/api_path.dart';
|
||||
import '../../../domain/analytic/analytic.dart';
|
||||
import '../analytic_dtos.dart';
|
||||
@ -28,6 +29,7 @@ class AnalyticRemoteDataProvider {
|
||||
'date_from': dateFrom.toServerDate,
|
||||
'date_to': dateTo.toServerDate,
|
||||
},
|
||||
headers: getAuthorizationHeader(),
|
||||
);
|
||||
|
||||
if (response.data['data'] == null) {
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:injectable/injectable.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
@ -10,6 +11,7 @@ import '../auth_dtos.dart';
|
||||
@injectable
|
||||
class AuthLocalDataProvider {
|
||||
final SharedPreferences _sharedPreferences;
|
||||
final String _logName = 'AuthLocalDataProvider';
|
||||
|
||||
AuthLocalDataProvider(this._sharedPreferences);
|
||||
|
||||
@ -48,7 +50,11 @@ class AuthLocalDataProvider {
|
||||
}
|
||||
|
||||
Future<void> deleteAllAuth() async {
|
||||
try {
|
||||
await _sharedPreferences.remove(LocalStorageKey.token);
|
||||
await _sharedPreferences.remove(LocalStorageKey.user);
|
||||
} catch (e) {
|
||||
log('deleteAllAuthError', name: _logName, error: e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import 'package:data_channel/data_channel.dart';
|
||||
|
||||
import '../../../common/api/api_client.dart';
|
||||
import '../../../common/api/api_failure.dart';
|
||||
import '../../../common/function/app_function.dart';
|
||||
import '../../../common/url/api_path.dart';
|
||||
import '../../../domain/auth/auth.dart';
|
||||
import '../auth_dtos.dart';
|
||||
@ -45,7 +46,7 @@ class AuthRemoteDataProvider {
|
||||
|
||||
Future<DC<AuthFailure, Unit>> logout() async {
|
||||
try {
|
||||
await _apiClient.post(ApiPath.logout);
|
||||
await _apiClient.post(ApiPath.logout, headers: getAuthorizationHeader());
|
||||
return DC.data(unit);
|
||||
} on ApiFailure catch (e, s) {
|
||||
log('login', name: _logName, error: e, stackTrace: s);
|
||||
|
||||
@ -5,6 +5,7 @@ import 'package:injectable/injectable.dart';
|
||||
|
||||
import '../../../common/api/api_client.dart';
|
||||
import '../../../common/api/api_failure.dart';
|
||||
import '../../../common/function/app_function.dart';
|
||||
import '../../../common/url/api_path.dart';
|
||||
import '../../../domain/category/category.dart';
|
||||
import '../category_dtos.dart';
|
||||
@ -25,6 +26,7 @@ class CategoryRemoteDataProvider {
|
||||
final response = await _apiClient.get(
|
||||
ApiPath.category,
|
||||
params: {'page': page, 'limit': limit, 'is_active': isActive},
|
||||
headers: getAuthorizationHeader(),
|
||||
);
|
||||
|
||||
if (response.data['data'] == null) {
|
||||
|
||||
@ -5,6 +5,7 @@ import 'package:injectable/injectable.dart';
|
||||
|
||||
import '../../../common/api/api_client.dart';
|
||||
import '../../../common/api/api_failure.dart';
|
||||
import '../../../common/function/app_function.dart';
|
||||
import '../../../common/url/api_path.dart';
|
||||
import '../../../domain/product/product.dart';
|
||||
import '../product_dtos.dart';
|
||||
@ -33,7 +34,11 @@ class ProductRemoteDataProvider {
|
||||
params['search'] = search;
|
||||
}
|
||||
|
||||
final response = await _apiClient.get(ApiPath.product, params: params);
|
||||
final response = await _apiClient.get(
|
||||
ApiPath.product,
|
||||
params: params,
|
||||
headers: getAuthorizationHeader(),
|
||||
);
|
||||
|
||||
if (response.data['data'] == null) {
|
||||
return DC.error(ProductFailure.empty());
|
||||
|
||||
@ -100,14 +100,10 @@ extension GetItInjectableX on _i174.GetIt {
|
||||
gh.factory<_i991.AuthLocalDataProvider>(
|
||||
() => _i991.AuthLocalDataProvider(gh<_i460.SharedPreferences>()),
|
||||
);
|
||||
gh.factory<_i6.Env>(() => _i6.ProdEnv(), registerFor: {_prod});
|
||||
gh.lazySingleton<_i115.ApiClient>(
|
||||
() => _i115.ApiClient(
|
||||
gh<_i361.Dio>(),
|
||||
gh<_i6.Env>(),
|
||||
gh<_i460.SharedPreferences>(),
|
||||
),
|
||||
() => _i115.ApiClient(gh<_i361.Dio>(), gh<_i6.Env>()),
|
||||
);
|
||||
gh.factory<_i6.Env>(() => _i6.ProdEnv(), registerFor: {_prod});
|
||||
gh.factory<_i17.AuthRemoteDataProvider>(
|
||||
() => _i17.AuthRemoteDataProvider(gh<_i115.ApiClient>()),
|
||||
);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user