checked items on db

This commit is contained in:
marcoabat
2023-08-07 11:11:47 +02:00
parent a17bfb6408
commit f4c0555354
3 changed files with 79 additions and 25 deletions

View File

@@ -10,10 +10,10 @@ import 'package:provider/provider.dart' as provider;
class DbHelper {
static const checkedItemsTableName = 'checkedItems';
static const checklistsTableName = 'checklists';
static ChecklistProvider? clProvider;
static const itemsTableName = 'items';
static late final SupabaseClient _client;
static ChecklistProvider? clProvider;
static Future<void> init() async {
await Supabase.initialize(
@@ -58,6 +58,26 @@ class DbHelper {
return checklists;
}
static Future<List<int>> fetchcheckedItemIds(int checklistId) async {
List<int> itemIdList = [];
final res = await _client
.from(checkedItemsTableName)
.select<List<Map<String, dynamic>>>('item_id');
for (final element in res) {
itemIdList.add(element['item_id']);
}
return itemIdList;
}
static Future<void> insertCheckedEntry(int checklistId, int itemId) async {
final ownerId = _client.auth.currentSession!.user.id;
await _client.from(checkedItemsTableName).insert({
'id': ownerId,
'checklist_id': checklistId,
'item_id': itemId,
});
}
static Future<void> updateChecklistTitle(int id, String title) async {
await _client
.from(checklistsTableName)
@@ -155,6 +175,15 @@ class DbHelper {
);
}
static Future<void> deleteCheckedEntry(int checklistId, int itemId) async {
final ownerId = _client.auth.currentSession!.user.id;
await _client.from(checkedItemsTableName).delete().match({
'id': ownerId,
'checklist_id': checklistId,
'item_id': itemId,
});
}
static Future<void> deleteItemById(int id) async {
await _client.from(itemsTableName).delete().eq('id', id);
}