setApplicationFavorite method
Sets one app-local favorite without changing NTUT Portal bookmarks.
Implementation
Future<void> setApplicationFavorite({
required String applicationCode,
required bool isFavorite,
}) async {
if (applicationCode.isEmpty) {
throw ArgumentError.value(
applicationCode,
'applicationCode',
'Application code cannot be empty.',
);
}
final user = await _database.select(_database.users).getSingleOrNull();
if (user == null) return;
if (isFavorite) {
await _database
.into(_database.portalApplicationFavorites)
.insert(
PortalApplicationFavoritesCompanion.insert(
user: user.id,
applicationCode: applicationCode,
),
mode: .insertOrIgnore,
);
return;
}
await (_database.delete(_database.portalApplicationFavorites)..where(
(row) =>
row.user.equals(user.id) &
row.applicationCode.equals(applicationCode),
))
.go();
}