init
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
/// Persisted app settings + employee session.
|
||||
class Settings {
|
||||
static const _kBaseUrl = 'base_url';
|
||||
static const _kToken = 'emp_token';
|
||||
static const _kName = 'emp_name';
|
||||
static const _kRole = 'emp_role';
|
||||
|
||||
static const defaultBaseUrl = 'https://api.scalar360.in';
|
||||
|
||||
late SharedPreferences _prefs;
|
||||
Future<void> load() async => _prefs = await SharedPreferences.getInstance();
|
||||
|
||||
String get baseUrl => (_prefs.getString(_kBaseUrl) ?? defaultBaseUrl).trim();
|
||||
set baseUrl(String v) => _prefs.setString(_kBaseUrl, v.trim());
|
||||
|
||||
String? get token => _prefs.getString(_kToken);
|
||||
String? get name => _prefs.getString(_kName);
|
||||
String get role => _prefs.getString(_kRole) ?? 'EMPLOYEE';
|
||||
bool get isManager => role == 'MANAGER';
|
||||
bool get isLoggedIn => (token ?? '').isNotEmpty;
|
||||
|
||||
Future<void> saveSession({required String token, String? name, String? role}) async {
|
||||
await _prefs.setString(_kToken, token);
|
||||
if (name != null) await _prefs.setString(_kName, name);
|
||||
if (role != null) await _prefs.setString(_kRole, role);
|
||||
}
|
||||
|
||||
Future<void> clearSession() async {
|
||||
await _prefs.remove(_kToken);
|
||||
await _prefs.remove(_kName);
|
||||
await _prefs.remove(_kRole);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user