summaryrefslogtreecommitdiff
path: root/src/database
diff options
context:
space:
mode:
Diffstat (limited to 'src/database')
-rw-r--r--src/database/mod.rs4
-rw-r--r--src/database/posts.rs4
-rw-r--r--src/database/sessions.rs1
-rw-r--r--src/database/users.rs6
4 files changed, 6 insertions, 9 deletions
diff --git a/src/database/mod.rs b/src/database/mod.rs
index 19e4203..59cc377 100644
--- a/src/database/mod.rs
+++ b/src/database/mod.rs
@@ -1,5 +1,3 @@
-use rusqlite::Result;
-
pub mod posts;
pub mod users;
pub mod sessions;
@@ -8,7 +6,7 @@ pub fn connect() -> Result<rusqlite::Connection, rusqlite::Error> {
rusqlite::Connection::open("xssbook.db")
}
-pub fn init() -> Result<()> {
+pub fn init() -> Result<(), rusqlite::Error> {
users::init()?;
posts::init()?;
sessions::init()?;
diff --git a/src/database/posts.rs b/src/database/posts.rs
index 7892683..6086fdc 100644
--- a/src/database/posts.rs
+++ b/src/database/posts.rs
@@ -1,5 +1,5 @@
use std::collections::HashSet;
-use std::time::{SystemTime, UNIX_EPOCH};
+use std::time::{SystemTime, UNIX_EPOCH, Duration};
use rusqlite::{OptionalExtension, Row};
use tracing::instrument;
@@ -91,7 +91,7 @@ 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 = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_millis() as u64;
+ 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| {
diff --git a/src/database/sessions.rs b/src/database/sessions.rs
index a2a2f6e..2283b58 100644
--- a/src/database/sessions.rs
+++ b/src/database/sessions.rs
@@ -4,7 +4,6 @@ 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,
diff --git a/src/database/users.rs b/src/database/users.rs
index d9e35b1..a578e69 100644
--- a/src/database/users.rs
+++ b/src/database/users.rs
@@ -1,4 +1,4 @@
-use std::time::{SystemTime, UNIX_EPOCH};
+use std::time::{SystemTime, UNIX_EPOCH, Duration};
use rusqlite::{OptionalExtension, Row};
use tracing::instrument;
@@ -36,7 +36,7 @@ fn user_from_row(row: &Row, hide_password: bool) -> Result<User, rusqlite::Error
let month = row.get(8)?;
let year = row.get(9)?;
- let password = if hide_password { "".to_string() } else { password };
+ let password = if hide_password { String::new() } else { password };
Ok(User{user_id, firstname, lastname, email, password, gender,date, day, month, year})
}
@@ -93,7 +93,7 @@ pub fn get_user_page(page: u64, hide_password: bool) -> Result<Vec<User>, rusqli
#[instrument()]
pub fn add_user(request: RegistrationRequet) -> Result<User, rusqlite::Error> {
tracing::trace!("Adding new user");
- let date = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_millis() as u64;
+ 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 users (firstname, lastname, email, password, gender, date, day, month, year) VALUES(?,?,?,?,?,?,?,?,?) RETURNING *;")?;