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