Aidra Driver 1.3.5+68
Aidra Driver - Your path to green energy
Loading...
Searching...
No Matches
user_info_service.dart
Go to the documentation of this file.
1import 'dart:convert';
2
3import '../api/api_client.dart';
4import '../api/api_endpoints.dart';
5import '../common/models/user_info.dart';
6import '../services/secure_storage_service.dart';
7import '../services/service_locator.dart';
8
10
12
14
16 final _storage = SecureStorageService(key: 'user_info');
17
19
21
22 Future<UserInfo?> fetchAndSaveUserInfo(int userId) async {
23 try {
24 final response = await apiClient.get(
25 url: ApiEndpoints.userInfo(userId: userId),
26 );
27
28 final userInfo = UserInfo.fromJson(response);
31
32 return userInfo;
33 } catch (e) {
34 final storedUserInfo = await getUserInfo();
35 _userInfo = storedUserInfo;
36 return storedUserInfo;
37 }
38 }
39
40 Future<void> saveUserInfo(UserInfo userInfo) async {
42 await _storage.save(value: jsonEncode(userInfo.toJson()));
43 }
44
45 Future<UserInfo?> getUserInfo() async {
46 if (_userInfo != null) return _userInfo;
47
48 final userInfoJson = await _storage.get();
49 if (userInfoJson == null) return null;
50
51 try {
52 _userInfo = UserInfo.fromJson(jsonDecode(userInfoJson));
53 return _userInfo;
54 } catch (e) {
55 return null;
56 }
57 }
58
59 Future<void> deleteUserInfo() async {
60 _userInfo = null;
61 await _storage.delete();
62 }
63}
sealed class CheckInOutEvent extends Equatable userId
static final UserInfoService instance
Future< UserInfo?> getUserInfo() async
UserInfoService _()
Future< UserInfo?> fetchAndSaveUserInfo(int userId) async
Future< void > saveUserInfo(UserInfo userInfo) async
Future< void > deleteUserInfo() async
factory UserInfo fromJson(Map< String, dynamic > json)
String get(String locale)
final sl