checked items on db
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user