summaryrefslogtreecommitdiff
path: root/src/db/story.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/story.rs')
-rw-r--r--src/db/story.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/db/story.rs b/src/db/story.rs
index 10fc49b..7bc5577 100644
--- a/src/db/story.rs
+++ b/src/db/story.rs
@@ -1,3 +1,10 @@
+use axum::async_trait;
+use sqlx::SqlitePool;
+
+use crate::error::AppError;
+
+use super::DatabaseHandler;
+
#[derive(Debug, serde::Serialize, sqlx::FromRow)]
pub struct Story {
pub id: i64,
@@ -6,3 +13,15 @@ pub struct Story {
pub epub: Vec<u8>,
pub pid: i64,
}
+
+#[async_trait]
+impl DatabaseHandler for Story {
+ async fn get_all(pool: SqlitePool) -> Result<Vec<Self>, AppError>
+ where
+ Self: Sized,
+ {
+ Ok(sqlx::query_as!(Story, "SELECT * FROM story")
+ .fetch_all(&pool)
+ .await?)
+ }
+}