diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2023-01-28 18:04:00 -0500 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2023-01-28 18:04:00 -0500 |
commit | b58654fd70958d89b344a6f7acac204f67ae9879 (patch) | |
tree | 60a1960d0d265c9f661e633022164f33e099c81c /src/database/posts.rs | |
parent | new rust, clippy (diff) | |
download | xssbook-b58654fd70958d89b344a6f7acac204f67ae9879.tar.gz xssbook-b58654fd70958d89b344a6f7acac204f67ae9879.tar.bz2 xssbook-b58654fd70958d89b344a6f7acac204f67ae9879.zip |
fmt
Diffstat (limited to 'src/database/posts.rs')
-rw-r--r-- | src/database/posts.rs | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/src/database/posts.rs b/src/database/posts.rs index 6086fdc..58470f0 100644 --- a/src/database/posts.rs +++ b/src/database/posts.rs @@ -1,11 +1,11 @@ use std::collections::HashSet; -use std::time::{SystemTime, UNIX_EPOCH, Duration}; +use std::time::{Duration, SystemTime, UNIX_EPOCH}; use rusqlite::{OptionalExtension, Row}; use tracing::instrument; -use crate::types::post::Post; use crate::database; +use crate::types::post::Post; pub fn init() -> Result<(), rusqlite::Error> { let sql = " @@ -40,7 +40,14 @@ fn post_from_row(row: &Row) -> Result<Post, rusqlite::Error> { return Err(rusqlite::Error::InvalidQuery) }; - Ok(Post{post_id, user_id, content, likes, comments, date}) + Ok(Post { + post_id, + user_id, + content, + likes, + comments, + date, + }) } #[instrument()] @@ -48,10 +55,12 @@ pub fn get_post(post_id: u64) -> Result<Option<Post>, rusqlite::Error> { tracing::trace!("Retrieving post"); let conn = database::connect()?; let mut stmt = conn.prepare("SELECT * FROM posts WHERE post_id = ?")?; - let row = stmt.query_row([post_id], |row| { - let row = post_from_row(row)?; - Ok(row) - }).optional()?; + let row = stmt + .query_row([post_id], |row| { + let row = post_from_row(row)?; + Ok(row) + }) + .optional()?; Ok(row) } @@ -73,7 +82,7 @@ pub fn get_users_posts(user_id: u64) -> Result<Vec<Post>, rusqlite::Error> { tracing::trace!("Retrieving users posts"); let conn = database::connect()?; let mut stmt = conn.prepare("SELECT * FROM posts WHERE user_id = ? ORDER BY post_id DESC")?; - let row = stmt.query_map([user_id], |row| { + let row = stmt.query_map([user_id], |row| { let row = post_from_row(row)?; Ok(row) })?; @@ -91,10 +100,16 @@ pub fn add_post(user_id: u64, content: &str) -> Result<Post, rusqlite::Error> { let Ok(comments_json) = serde_json::to_string(&comments) else { return Err(rusqlite::Error::InvalidQuery) }; - let date = u64::try_from(SystemTime::now().duration_since(UNIX_EPOCH).unwrap_or(Duration::ZERO).as_millis()).unwrap_or(0); + let date = u64::try_from( + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap_or(Duration::ZERO) + .as_millis(), + ) + .unwrap_or(0); let conn = database::connect()?; let mut stmt = conn.prepare("INSERT INTO posts (user_id, content, likes, comments, date) VALUES(?,?,?,?,?) RETURNING *;")?; - let post = stmt.query_row((user_id, content, likes_json, comments_json, date), |row| { + let post = stmt.query_row((user_id, content, likes_json, comments_json, date), |row| { let row = post_from_row(row)?; Ok(row) })?; @@ -102,7 +117,11 @@ pub fn add_post(user_id: u64, content: &str) -> Result<Post, rusqlite::Error> { } #[instrument()] -pub fn update_post(post_id: u64, likes: &HashSet<u64>, comments: &Vec<(u64, String)>) -> Result<(), rusqlite::Error> { +pub fn update_post( + post_id: u64, + likes: &HashSet<u64>, + comments: &Vec<(u64, String)>, +) -> Result<(), rusqlite::Error> { tracing::trace!("Updating post"); let Ok(likes_json) = serde_json::to_string(&likes) else { return Err(rusqlite::Error::InvalidQuery) @@ -114,4 +133,4 @@ pub fn update_post(post_id: u64, likes: &HashSet<u64>, comments: &Vec<(u64, Stri let sql = "UPDATE posts SET likes = ?, comments = ? WHERE post_id = ?"; conn.execute(sql, (likes_json, comments_json, post_id))?; Ok(()) -}
\ No newline at end of file +} |