prehnite_core/db/schema/
load.rs1use crate::db::query;
2use crate::db::schema::{BackgroundInfo, Bibliography, Headline, Item, Paragraph};
3use sqlx::SqliteConnection;
4
5impl BackgroundInfo {
6 pub async fn load_references(
7 &mut self,
8 conn: &mut SqliteConnection,
9 ) -> Result<(), sqlx::Error> {
10 self.references = Some(query::fetch_background_references(conn, self.id).await?);
11 Ok(())
12 }
13}
14
15impl BackgroundInfo {
16 async fn load_all(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
17 self.load_references(conn).await
18 }
19}
20
21impl Bibliography {
22 pub async fn load_authors(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
23 self.authors = query::fetch_bibliography_authors(conn, self.id).await?;
24 Ok(())
25 }
26}
27
28impl Bibliography {
29 async fn load_all(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
30 self.load_authors(conn).await
31 }
32}
33
34impl Item {
35 pub async fn load_references(
36 &mut self,
37 conn: &mut SqliteConnection,
38 ) -> Result<(), sqlx::Error> {
39 self.references = Some(query::fetch_item_references(conn, self.id).await?);
40 Ok(())
41 }
42
43 pub async fn load_tags(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
44 self.tags = Some(query::fetch_item_related_tags(conn, self.id).await?);
45 Ok(())
46 }
47
48 pub async fn load_background_info_list(
49 &mut self,
50 conn: &mut SqliteConnection,
51 ) -> Result<(), sqlx::Error> {
52 self.background_info_list =
53 Some(query::fetch_background_info_from_item_id(conn, self.id).await?);
54 Ok(())
55 }
56
57 pub async fn load_tasks(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
58 self.tasks = Some(query::fetch_item_related_tasks(conn, self.id).await?);
59 Ok(())
60 }
61}
62
63impl Item {
64 async fn load_all(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
65 self.load_references(conn).await?;
66 self.load_tags(conn).await?;
67 self.load_background_info_list(conn).await?;
68 self.load_tasks(conn).await
69 }
70}
71
72impl Headline {
73 pub async fn load_paragraph(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
74 self.paragraph = Some(query::fetch_headline_related_paragraph(conn, self.id).await?);
75 Ok(())
76 }
77}
78
79impl Headline {
80 async fn load_all(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
81 self.load_paragraph(conn).await
82 }
83}
84
85impl Paragraph {
86 pub async fn load_draft(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
87 self.draft = Some(query::fetch_paragraph_related_draft(conn, self.id).await?);
88 Ok(())
89 }
90
91 pub async fn load_summary(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
92 self.summary = Some(query::fetch_paragraph_related_summaries(conn, self.id).await?);
93 Ok(())
94 }
95}
96
97impl Paragraph {
98 async fn load_all(&mut self, conn: &mut SqliteConnection) -> Result<(), sqlx::Error> {
99 self.load_draft(conn).await?;
100 self.load_summary(conn).await
101 }
102}