Skip to content

Commit 1605823

Browse files
committed
[#31] fix can not get token
1 parent 2c3b69c commit 1605823

File tree

11 files changed

+33
-25
lines changed

11 files changed

+33
-25
lines changed

lib/api/data_sources/token_data_source.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ class TokenDataSourceImpl extends TokenDataSource {
4545
return apiToken;
4646
}
4747

48-
return await _secureStorage.getValue(key: SecureStorageKey.apiToken)
49-
as ApiToken;
48+
return await _secureStorage.getValue<ApiToken>(
49+
key: SecureStorageKey.apiToken);
5050
}
5151

5252
@override

lib/api/interceptor/auth_interceptor.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ class AuthInterceptor extends Interceptor {
2020
RequestOptions options,
2121
RequestInterceptorHandler handler,
2222
) async {
23-
print("@@@ get 1");
2423
final token = await _tokenDataSource.getToken();
25-
print("@@@ get here $token");
2624
options.headers.putIfAbsent(
2725
_headerAuthorization, () => "${token.tokenType} ${token.accessToken}");
2826
super.onRequest(options, handler);

lib/di/interceptor/app_interceptor.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
import 'dart:io';
22

33
import 'package:dio/dio.dart';
4-
import 'package:survey_flutter/model/api_token.dart';
5-
import 'package:survey_flutter/storage/secure_storage.dart';
6-
7-
const String _headerAuthorization = 'Authorization';
84

95
class AppInterceptor extends Interceptor {
106
final bool _requireAuthenticate;
117
final Dio _dio;
12-
final SecureStorage? _secureStorage;
138

14-
AppInterceptor(this._requireAuthenticate, this._dio, this._secureStorage);
9+
AppInterceptor(
10+
this._requireAuthenticate,
11+
this._dio,
12+
);
1513

1614
@override
1715
Future onRequest(

lib/di/provider/dio_provider.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class DioProvider {
2727

2828
Dio _createDio({bool requireAuthentication = false}) {
2929
final dio = Dio();
30+
3031
final interceptors = <Interceptor>[];
3132
if (requireAuthentication) {
3233
final authInterceptor = AuthInterceptor(

lib/repositories/authentication_repository.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ class AuthenticationRepositoryImpl extends AuthenticationRepository {
4747
grantType: _grantType,
4848
));
4949
await _tokenDataSource.setToken(response.toApiToken());
50-
print("@@@ settoken ${response.toApiToken()}");
5150
return response.toLoginModel();
5251
} catch (exception) {
5352
throw NetworkExceptions.fromDioException(exception);

lib/screens/home/home_screen.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
4141
@override
4242
Widget build(BuildContext context) {
4343
return ref.watch(homeViewModelProvider).when(
44-
init: () => _buildHomeScreen(isLoading: true),
4544
loading: () => _buildHomeScreen(isLoading: true),
4645
error: () => _buildHomeScreen(),
4746
loadCachedSurveysSuccess: () => _buildHomeScreen(),

lib/screens/home/home_state.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ part 'home_state.freezed.dart';
44

55
@freezed
66
class HomeState with _$HomeState {
7-
const factory HomeState.init() = _Init;
8-
97
const factory HomeState.loading() = _Loading;
108

119
const factory HomeState.loadCachedSurveysSuccess() =

lib/screens/home/home_view_model.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:survey_flutter/usecases/base/base_use_case.dart';
77
import 'package:survey_flutter/usecases/get_cached_surveys_use_case.dart';
88
import 'package:survey_flutter/usecases/get_surveys_use_case.dart';
99

10+
// TODO: Integrate load more
1011
const _pageNumber = 1;
1112
const _pageSize = 10;
1213

@@ -30,7 +31,7 @@ class HomeViewModel extends StateNotifier<HomeState> {
3031
required GetCachedSurveysUseCase getCachedSurveysUseCase,
3132
}) : _getSurveysUseCase = getSurveysUseCase,
3233
_getCachedSurveysUseCase = getCachedSurveysUseCase,
33-
super(const HomeState.init());
34+
super(const HomeState.loading());
3435

3536
final _surveys = StreamController<List<SurveyModel>>();
3637
Stream<List<SurveyModel>> get surveys => _surveys.stream;

lib/storage/secure_storage_impl.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:convert';
22

33
import 'package:flutter_riverpod/flutter_riverpod.dart';
44
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
5+
import 'package:survey_flutter/model/api_token.dart';
56
import 'package:survey_flutter/storage/secure_storage.dart';
67

78
import '../di/provider/flutter_secure_storage.dart';
@@ -21,8 +22,13 @@ class SecureStorageImpl extends SecureStorage {
2122
if (rawValue == null) {
2223
throw SecureStorageError.failToGetValue;
2324
}
25+
final jsonValue = await jsonDecode(rawValue);
2426

25-
return await jsonDecode(rawValue);
27+
if (M == ApiToken) {
28+
return ApiToken.fromJson(jsonValue) as M;
29+
} else {
30+
throw ArgumentError('Invalid SecureStorageModel type');
31+
}
2632
}
2733

2834
@override

test/api/repositories/survey_repository_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ void main() {
1616
setUp(() {
1717
mockSurveyApiService = MockSurveyApiService();
1818
mockSurveyStorage = MockSurveyStorage();
19-
surveyRepository = SurveyRepositoryImpl(
20-
mockSurveyApiService, mockSurveyStorage);
19+
surveyRepository =
20+
SurveyRepositoryImpl(mockSurveyApiService, mockSurveyStorage);
2121
});
2222

2323
test('when getting surveys is successful returns SurveysContainerModel',

0 commit comments

Comments
 (0)