import 'package:yimaru_app/app/app.locator.dart'; import 'package:yimaru_app/models/user_model.dart'; import 'package:yimaru_app/services/secure_storage_service.dart'; class AuthenticationService { final _secureService = locator(); Future userLoggedIn() async { if (await _secureService.getString('userId') != null) { return true; } return false; } Future getAccessToken() async => await _secureService.getString('accessToken'); Future getRefreshToken() async => await _secureService.getString('refreshToken'); Future getUserId() async => await _secureService.getInt('userId'); Future saveTokens({ required String access, required String refresh, }) async { await _secureService.setString('accessToken', access); await _secureService.setString('refreshToken', refresh); } Future saveUserData(Map data) async { await _secureService.setInt('userId', data['userId']); await _secureService.setString('accessToken', data['accessToken']); await _secureService.setString('refreshToken', data['refreshToken']); } Future saveProfileCompleted(bool value) async { await _secureService.setBool('profileCompleted', value); } Future isFirstTimeInstall() async => await _secureService.getBool('firstTimeInstall') ?? true; Future setFirstTimeInstall(bool value) async { await _secureService.setBool('firstTimeInstall', value); } Future getUser() async { UserModel user = UserModel( userId: await _secureService.getInt('userId'), accessToken: await _secureService.getString('accessToken'), refreshToken: await _secureService.getString('refreshToken'), profileCompleted: await _secureService.getBool('profileCompleted'), ); return user; } Future logOut() async { bool firstTimeInstall = await isFirstTimeInstall(); await _secureService.clear(); await setFirstTimeInstall(firstTimeInstall); } }