From 487d97cb019ef1a37d3ef90c6b051ba0389c6d15 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Sat, 28 Jan 2023 11:52:32 -0500 Subject: tracing --- src/database/posts.rs | 11 +++++++++++ src/database/sessions.rs | 8 ++++++++ src/database/users.rs | 11 +++++++++++ 3 files changed, 30 insertions(+) (limited to 'src/database') diff --git a/src/database/posts.rs b/src/database/posts.rs index 96cd18a..6ee5e0f 100644 --- a/src/database/posts.rs +++ b/src/database/posts.rs @@ -2,6 +2,7 @@ use std::collections::HashSet; use std::time::{SystemTime, UNIX_EPOCH}; use rusqlite::{OptionalExtension, Row}; +use tracing::instrument; use crate::types::post::Post; use crate::database; @@ -42,14 +43,18 @@ fn post_from_row(row: &Row) -> Result { Ok(Post{post_id, user_id, content, likes, comments, date}) } +#[instrument()] pub fn get_post(post_id: u64) -> Result, 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| Ok(post_from_row(row)?)).optional()?; Ok(row) } +#[instrument()] pub fn get_post_page(page: u64) -> Result, rusqlite::Error> { + tracing::trace!("Retrieving posts page"); let page_size = 10; let conn = database::connect()?; let mut stmt = conn.prepare("SELECT * FROM posts ORDER BY post_id DESC LIMIT ? OFFSET ?")?; @@ -57,14 +62,18 @@ pub fn get_post_page(page: u64) -> Result, rusqlite::Error> { Ok(row.into_iter().flatten().collect()) } +#[instrument()] pub fn get_users_posts(user_id: u64) -> Result, 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| Ok(post_from_row(row)?))?; Ok(row.into_iter().flatten().collect()) } +#[instrument()] pub fn add_post(user_id: u64, content: &str) -> Result { + tracing::trace!("Adding post"); let likes: HashSet = HashSet::new(); let comments: Vec<(u64, String)> = Vec::new(); let Ok(likes_json) = serde_json::to_string(&likes) else { @@ -80,7 +89,9 @@ pub fn add_post(user_id: u64, content: &str) -> Result { Ok(post) } +#[instrument()] pub fn update_post(post_id: u64, likes: &HashSet, 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) }; diff --git a/src/database/sessions.rs b/src/database/sessions.rs index 7866d76..a2a2f6e 100644 --- a/src/database/sessions.rs +++ b/src/database/sessions.rs @@ -1,8 +1,10 @@ use rusqlite::OptionalExtension; +use tracing::instrument; use crate::{database, types::session::Session}; pub fn init() -> Result<(), rusqlite::Error> { + tracing::trace!("Retrieving posts page"); let sql = " CREATE TABLE IF NOT EXISTS sessions ( user_id INTEGER PRIMARY KEY NOT NULL, @@ -15,7 +17,9 @@ pub fn init() -> Result<(), rusqlite::Error> { Ok(()) } +#[instrument()] pub fn get_session(token: &str) -> Result, rusqlite::Error> { + tracing::trace!("Retrieving session"); let conn = database::connect()?; let mut stmt = conn.prepare("SELECT * FROM sessions WHERE token = ?")?; let row = stmt.query_row([token], |row| { @@ -27,14 +31,18 @@ pub fn get_session(token: &str) -> Result, rusqlite::Error> { Ok(row) } +#[instrument()] pub fn set_session(user_id: u64, token: &str) -> Result<(), Box> { + tracing::trace!("Setting new session"); let conn = database::connect()?; let sql = "INSERT OR REPLACE INTO sessions (user_id, token) VALUES (?, ?);"; conn.execute(sql, (user_id, token))?; Ok(()) } +#[instrument()] pub fn delete_session(user_id: u64) -> Result<(), Box> { + tracing::trace!("Deleting session"); let conn = database::connect()?; let sql = "DELETE FROM sessions WHERE user_id = ?;"; conn.execute(sql, [user_id])?; diff --git a/src/database/users.rs b/src/database/users.rs index 2618dce..56b8814 100644 --- a/src/database/users.rs +++ b/src/database/users.rs @@ -1,5 +1,6 @@ use std::time::{SystemTime, UNIX_EPOCH}; use rusqlite::{OptionalExtension, Row}; +use tracing::instrument; use crate::{database, types::user::User}; @@ -40,28 +41,36 @@ fn user_from_row(row: &Row, hide_password: bool) -> Result Result, rusqlite::Error> { + tracing::trace!("Retrieving user by id"); let conn = database::connect()?; let mut stmt = conn.prepare("SELECT * FROM users WHERE user_id = ?")?; let row = stmt.query_row([user_id], |row| Ok(user_from_row(row, hide_password)?)).optional()?; Ok(row) } +#[instrument()] pub fn get_user_by_email(email: &str, hide_password: bool) -> Result, rusqlite::Error> { + tracing::trace!("Retrieving user by email"); let conn = database::connect()?; let mut stmt = conn.prepare("SELECT * FROM users WHERE email = ?")?; let row = stmt.query_row([email], |row| Ok(user_from_row(row, hide_password)?)).optional()?; Ok(row) } +#[instrument()] pub fn get_user_by_password(password: &str, hide_password: bool) -> Result, rusqlite::Error> { + tracing::trace!("Retrieving user by password"); let conn = database::connect()?; let mut stmt = conn.prepare("SELECT * FROM users WHERE password = ?")?; let row = stmt.query_row([password], |row| Ok(user_from_row(row, hide_password)?)).optional()?; Ok(row) } +#[instrument()] pub fn get_user_page(page: u64, hide_password: bool) -> Result, rusqlite::Error> { + tracing::trace!("Retrieving user page"); let page_size = 5; let conn = database::connect()?; let mut stmt = conn.prepare("SELECT * FROM users ORDER BY user_id DESC LIMIT ? OFFSET ?")?; @@ -69,7 +78,9 @@ pub fn get_user_page(page: u64, hide_password: bool) -> Result, rusqli Ok(row.into_iter().flatten().collect()) } +#[instrument()] pub fn add_user(firstname: &str, lastname: &str, email: &str, password: &str, gender: &str, day: u8, month: u8, year: u32) -> Result { + tracing::trace!("Adding new user"); let date = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_millis() as u64; let conn = database::connect()?; -- cgit v1.2.3-freya