diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-06-03 23:36:51 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2023-06-03 23:36:51 -0600 |
commit | a28fa912bc04f28125c3d62d2e288145233cd789 (patch) | |
tree | 0913b5387aeded6206fef98ccc834612debce778 /lib/database/helper.dart | |
parent | 17bd9bc740e3be5509b81d42184819324881fe54 (diff) | |
download | pmsna1-a28fa912bc04f28125c3d62d2e288145233cd789.tar.gz pmsna1-a28fa912bc04f28125c3d62d2e288145233cd789.tar.bz2 pmsna1-a28fa912bc04f28125c3d62d2e288145233cd789.zip |
Finished practice 5
Diffstat (limited to 'lib/database/helper.dart')
-rw-r--r-- | lib/database/helper.dart | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/database/helper.dart b/lib/database/helper.dart index da2d199..54e415c 100644 --- a/lib/database/helper.dart +++ b/lib/database/helper.dart @@ -4,6 +4,7 @@ import 'dart:io'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; import 'package:pmsna1/models/event.dart'; +import 'package:pmsna1/models/popular.dart'; import 'package:pmsna1/models/post.dart'; import 'package:sqflite/sqflite.dart'; @@ -47,6 +48,14 @@ class DatabaseHelper { date DATE NOT NULL, completed INT DEFAULT 0 );"""); + + await db.execute("""CREATE TABLE IF NOT EXISTS favorites ( + id INT PRIMARY KEY, + title VARCHAR(128), + posterPath VARCHAR(128), + backdropPath VARCHAR(128), + overview TEXT +);"""); } Future<int> insert(String table, Map<String, dynamic> data) async { @@ -92,4 +101,33 @@ class DatabaseHelper { List<Map<String, Object?>> result = await conn.query("events"); return result.map((event) => Event.fromMap(event)).toList(); } + + /* + * Favorite specific functions + */ + + Future<List<Popular>> getAllFavorites() async { + Database conn = await database; + List<Map<String, Object?>> result = await conn.query("favorites"); + return result.map((p) { + Popular popular = Popular.fromDb(p); + popular.hasFavorite = true; + return popular; + }).toList(); + } + + Future<bool> hasFavorite(int id) async { + Database conn = await database; + List result = + await conn.query("favorites", where: "id = ?", whereArgs: [id]); + return result.isNotEmpty; + } + + Future<int> favoritePopular(Popular popular) async { + return insert('favorites', popular.toDb()); + } + + Future<int> unfavoritePopular(Popular popular) async { + return delete('favorites', 'id', popular.id); + } } |