login method
- User user
login a User by checking if he exists in the remote database
Implementation
Future<DisplayUser?> login(User user) async {
if (await isUserLoggedIn(user)) return this.user;
try {
final loggedInUser = await remote.login(user);
debugPrint(
'API.login: logged in as KZL=${loggedInUser?.name}, Def_Login_ID=${loggedInUser?.defLoginId}');
_user = loggedInUser;
remote.injectUser(loggedInUser);
await loggedInUser!.store();
await _seedLoginUsersCacheWithCurrentUser(loggedInUser);
await refreshLoginUsersCache();
final cachedUsers = await _readStoredLoginUsers();
debugPrint('Login users cache after login: ${cachedUsers.length}');
return this.user;
} catch (e) {
logout();
rethrow;
}
}