Line data Source code
1 : import 'package:pal/src/database/adapter/in_app_user_storage_adapter.dart'; 2 : import 'package:pal/src/database/entity/in_app_user_entity.dart'; 3 : import 'package:pal/src/services/local_storage/local_storage_manager.dart'; 4 : 5 : class InAppUserStorageClientManager { 6 : final StorageManager _localStorageManager; 7 : final InAppUserEntityAdapter _adapter; 8 : InAppUserEntity _inAppUser; 9 : 10 2 : factory InAppUserStorageClientManager.build() => 11 2 : InAppUserStorageClientManager._private( 12 4 : LocalStorageManager("in_app_user"), InAppUserEntityAdapter()); 13 : 14 2 : InAppUserStorageClientManager._private( 15 : this._localStorageManager, this._adapter); 16 : 17 0 : Future storeInAppUser(final InAppUserEntity inAppUser) async { 18 0 : this._inAppUser = inAppUser; 19 0 : await this._localStorageManager.store(this._adapter.toJson(inAppUser)); 20 : } 21 : 22 1 : Future<InAppUserEntity> readInAppUser() { 23 1 : if (this._inAppUser != null) { 24 0 : return Future.value(this._inAppUser); 25 : } 26 3 : return this._localStorageManager.read().then((res) { 27 0 : if (res != null && res.length > 0) { 28 : try { 29 0 : this._inAppUser = this._adapter.parse(res); 30 0 : return this._inAppUser; 31 : } catch (e) { 32 : return null; 33 : } 34 : } 35 : return null; 36 : }); 37 : } 38 : 39 0 : Future<InAppUserEntity> clearInAppUser() async { 40 0 : await this._localStorageManager.deleteFile(); 41 0 : InAppUserEntity deletedInAppUser = this._inAppUser; 42 0 : this._inAppUser = null; 43 : return deletedInAppUser; 44 : } 45 : }