44 lines
1.2 KiB
Dart
44 lines
1.2 KiB
Dart
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
abstract class UserLocalDataSource {
|
|
Future<void> cacheUserToken(String token);
|
|
Future<String?> getCachedUserToken();
|
|
Future<void> clearCache();
|
|
Future<void> cacheEmployeeId(String id);
|
|
Future<String?> getCachedEmployeeId();
|
|
}
|
|
|
|
class UserLocalDataSourceImpl implements UserLocalDataSource {
|
|
final SharedPreferences sharedPreferences;
|
|
static const String _tokenKey = 'user_token';
|
|
static const String _employeeIdKey = 'employee_id';
|
|
|
|
UserLocalDataSourceImpl({required this.sharedPreferences});
|
|
|
|
@override
|
|
Future<void> cacheUserToken(String token) async {
|
|
await sharedPreferences.setString(_tokenKey, token);
|
|
}
|
|
|
|
@override
|
|
Future<String?> getCachedUserToken() async {
|
|
return sharedPreferences.getString(_tokenKey);
|
|
}
|
|
|
|
@override
|
|
Future<void> clearCache() async {
|
|
await sharedPreferences.remove(_tokenKey);
|
|
await sharedPreferences.remove(_employeeIdKey);
|
|
}
|
|
|
|
@override
|
|
Future<void> cacheEmployeeId(String id) async {
|
|
await sharedPreferences.setString(_employeeIdKey, id);
|
|
}
|
|
|
|
@override
|
|
Future<String?> getCachedEmployeeId() async {
|
|
return sharedPreferences.getString(_employeeIdKey);
|
|
}
|
|
}
|