From c9579cb9ca2a6a165d10f128e0af1dfd372e0c03 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Sun, 21 Mar 2021 20:04:39 +0000 Subject: Implement server (#23) * Add initial database and server setup * Set up all routes, auth, etc * Implement sessions, password auth, hashing with argon2, and history storage --- src/remote/models.rs | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/remote/models.rs (limited to 'src/remote/models.rs') diff --git a/src/remote/models.rs b/src/remote/models.rs new file mode 100644 index 00000000..058b2f0b --- /dev/null +++ b/src/remote/models.rs @@ -0,0 +1,56 @@ +use chrono::naive::NaiveDateTime; + +use crate::schema::{history, sessions, users}; + +#[derive(Identifiable, Queryable, Associations)] +#[table_name = "history"] +#[belongs_to(User)] +pub struct History { + pub id: i64, + pub client_id: String, + pub user_id: i64, + pub mac: String, + pub timestamp: NaiveDateTime, + + pub data: String, +} + +#[derive(Identifiable, Queryable, Associations)] +pub struct User { + pub id: i64, + pub email: String, + pub password: String, +} + +#[derive(Queryable, Identifiable, Associations)] +#[belongs_to(User)] +pub struct Session { + pub id: i64, + pub user_id: i64, + pub token: String, +} + +#[derive(Insertable)] +#[table_name = "history"] +pub struct NewHistory<'a> { + pub client_id: &'a str, + pub user_id: i64, + pub mac: &'a str, + pub timestamp: NaiveDateTime, + + pub data: &'a str, +} + +#[derive(Insertable)] +#[table_name = "users"] +pub struct NewUser<'a> { + pub email: &'a str, + pub password: &'a str, +} + +#[derive(Insertable)] +#[table_name = "sessions"] +pub struct NewSession<'a> { + pub user_id: i64, + pub token: &'a str, +} -- cgit v1.3.1