From 899240bdbc284e867139ac183184038326cc6af1 Mon Sep 17 00:00:00 2001 From: Greg Shuflin Date: Sat, 1 Feb 2025 20:07:32 -0800 Subject: [PATCH] user module --- src/main.rs | 38 ++++---------------------------------- src/user.rs | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 34 deletions(-) create mode 100644 src/user.rs diff --git a/src/main.rs b/src/main.rs index 43e45ae..102babb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,13 +1,16 @@ #[macro_use] extern crate rocket; +mod user; + use rocket::fs::FileServer; use rocket::http::Status; -use rocket::serde::{json::Json, Deserialize, Serialize}; +use rocket::serde::{json::Json, Serialize}; use rocket_db_pools::{sqlx, Connection, Database}; use rocket_dyn_templates::{context, Template}; use uuid::Uuid; use bcrypt; +use user::{User, NewUser}; #[derive(Database)] #[database("rss_data")] @@ -20,39 +23,6 @@ struct Message { b: String, } -#[derive(Debug, Serialize)] -#[serde(crate = "rocket::serde")] -struct User { - id: Uuid, - username: String, - password_hash: String, - email: Option, - display_name: Option, - created_at: chrono::DateTime, -} - -impl User { - fn new(username: String, password_hash: String, email: Option, display_name: Option) -> Self { - User { - id: Uuid::new_v4(), - username, - password_hash, - email, - display_name, - created_at: chrono::Utc::now(), - } - } -} - -#[derive(Debug, Deserialize)] -#[serde(crate = "rocket::serde")] -struct NewUser { - username: String, - password: String, - email: Option, - display_name: Option, -} - #[get("/message")] fn message() -> Json { Json(Message { diff --git a/src/user.rs b/src/user.rs new file mode 100644 index 0000000..acee07f --- /dev/null +++ b/src/user.rs @@ -0,0 +1,36 @@ +use chrono; +use rocket::serde::{Deserialize, Serialize}; +use uuid::Uuid; + +#[derive(Debug, Serialize)] +#[serde(crate = "rocket::serde")] +pub struct User { + pub id: Uuid, + pub username: String, + pub password_hash: String, + pub email: Option, + pub display_name: Option, + pub created_at: chrono::DateTime, +} + +impl User { + pub fn new(username: String, password_hash: String, email: Option, display_name: Option) -> Self { + User { + id: Uuid::new_v4(), + username, + password_hash, + email, + display_name, + created_at: chrono::Utc::now(), + } + } +} + +#[derive(Debug, Deserialize)] +#[serde(crate = "rocket::serde")] +pub struct NewUser { + pub username: String, + pub password: String, + pub email: Option, + pub display_name: Option, +} \ No newline at end of file