From f3b02e8fc2793b9c96cc05c9e451849f71de51ec Mon Sep 17 00:00:00 2001 From: Aditya Wasan Date: Tue, 8 Dec 2020 16:24:32 +0530 Subject: [PATCH] database: add Post model Signed-off-by: Harsh Shandilya --- database/build.gradle.kts | 4 ++ .../dev/msfjarvis/lobsters/data/local/Post.sq | 55 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 database/src/main/sqldelight/dev/msfjarvis/lobsters/data/local/Post.sq diff --git a/database/build.gradle.kts b/database/build.gradle.kts index 6c38414f..88c3fbb1 100644 --- a/database/build.gradle.kts +++ b/database/build.gradle.kts @@ -4,3 +4,7 @@ plugins { id("com.squareup.sqldelight") `lobsters-plugin` } + +dependencies { + implementation(project(":model")) +} diff --git a/database/src/main/sqldelight/dev/msfjarvis/lobsters/data/local/Post.sq b/database/src/main/sqldelight/dev/msfjarvis/lobsters/data/local/Post.sq new file mode 100644 index 00000000..0ec34da6 --- /dev/null +++ b/database/src/main/sqldelight/dev/msfjarvis/lobsters/data/local/Post.sq @@ -0,0 +1,55 @@ +import dev.msfjarvis.lobsters.model.Submitter; +import kotlin.collections.List; + +CREATE TABLE IF NOT EXISTS LobstersPost( + short_id TEXT NOT NULL PRIMARY KEY, + short_id_url TEXT NOT NULL, + created_at TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + score INTEGER NOT NULL, + flags INTEGER NOT NULL, + comment_count INTEGER NOT NULL, + description TEXT NOT NULL, + comments_url TEXT NOT NULL, + submitter_user TEXT as Submitter NOT NULL, + tags TEXT as List NOT NULL, + is_saved INTEGER DEFAULT 0 NOT NULL +); + +selectAllPosts: +SELECT * +FROM LobstersPost; + +selectPost: +SELECT * +FROM LobstersPost +WHERE short_id = ?; + +insertOrReplacePost: +INSERT OR REPLACE +INTO LobstersPost +VALUES ?; + +savePost: +UPDATE LobstersPost +SET is_saved = 1 +WHERE short_id = ?; + +removeSavedPost: +UPDATE LobstersPost +SET is_saved = 0 +WHERE short_id = ?; + +deletePost: +DELETE +FROM LobstersPost +WHERE short_id = ?; + +deleteAllPosts: +DELETE +FROM LobstersPost; + +selectCount: +SELECT COUNT(*) +FROM LobstersPost;