TF-571 Implement AuthenticationOIDC repository with Hive
This commit is contained in:
committed by
Dat H. Pham
parent
03777be4a8
commit
471465e1bc
@@ -0,0 +1,33 @@
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:model/oidc/token_oidc.dart';
|
||||
import 'package:tmail_ui_user/features/caching/token_oidc_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/extensions/token_oidc_cache_extension.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/extensions/token_oidc_extension.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
|
||||
|
||||
class TokenOidcCacheManager {
|
||||
final TokenOidcCacheClient _tokenOidcCacheClient;
|
||||
|
||||
TokenOidcCacheManager(this._tokenOidcCacheClient);
|
||||
|
||||
Future<TokenOIDC> getTokenOidc(String tokenIdHash) async {
|
||||
final tokenCache = await _tokenOidcCacheClient.getItem(tokenIdHash);
|
||||
if (tokenCache == null) {
|
||||
throw NotFoundStoredTokenException();
|
||||
} else {
|
||||
return tokenCache.toTokenOidc();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> persistOneTokenOidc(TokenOIDC tokenOIDC) async {
|
||||
log('TokenOidcCacheManager::persistOneTokenOidc(): $tokenOIDC');
|
||||
final emailCacheExist = await _tokenOidcCacheClient.isExistTable();
|
||||
if (emailCacheExist) {
|
||||
await _tokenOidcCacheClient.clearAllData();
|
||||
}
|
||||
log('TokenOidcCacheManager::persistOneTokenOidc(): key: ${tokenOIDC.tokenId.uuid}');
|
||||
log('TokenOidcCacheManager::persistOneTokenOidc(): key\'s hash: ${tokenOIDC.tokenId.hashCode.toString()}');
|
||||
log('TokenOidcCacheManager::persistOneTokenOidc(): token: ${tokenOIDC.token}');
|
||||
await _tokenOidcCacheClient.insertItem(tokenOIDC.tokenId.hashCode.toString(), tokenOIDC.toTokenOidcCache());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user