From 5751463942cc91f1f1ffaf6e2ac633d7a0085f25 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Tue, 13 Apr 2021 19:14:07 +0100 Subject: Add history sync, resolves #13 (#31) * Add encryption * Add login and register command * Add count endpoint * Write initial sync push * Add single sync command Confirmed working for one client only * Automatically sync on a configurable frequency * Add key command, key arg to login * Only load session if it exists * Use sync and history timestamps for download * Bind other key code Seems like some systems have this code for up arrow? I'm not sure why, and it's not an easy one to google. * Simplify upload * Try and fix download sync loop * Change sync order to avoid uploading what we just downloaded * Multiline import fix * Fix time parsing * Fix importing history with no time * Add hostname to sync * Use hostname to filter sync * Fixes * Add binding * Stuff from yesterday * Set cursor modes * Make clippy happy * Bump version --- src/remote/models.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/remote/models.rs') diff --git a/src/remote/models.rs b/src/remote/models.rs index 058b2f0b..7f6f7766 100644 --- a/src/remote/models.rs +++ b/src/remote/models.rs @@ -1,23 +1,26 @@ -use chrono::naive::NaiveDateTime; +use chrono::prelude::*; use crate::schema::{history, sessions, users}; -#[derive(Identifiable, Queryable, Associations)] +#[derive(Deserialize, Serialize, Identifiable, Queryable, Associations)] #[table_name = "history"] #[belongs_to(User)] pub struct History { pub id: i64, - pub client_id: String, + pub client_id: String, // a client generated ID pub user_id: i64, - pub mac: String, + pub hostname: String, pub timestamp: NaiveDateTime, pub data: String, + + pub created_at: NaiveDateTime, } #[derive(Identifiable, Queryable, Associations)] pub struct User { pub id: i64, + pub username: String, pub email: String, pub password: String, } @@ -35,8 +38,8 @@ pub struct Session { pub struct NewHistory<'a> { pub client_id: &'a str, pub user_id: i64, - pub mac: &'a str, - pub timestamp: NaiveDateTime, + pub hostname: String, + pub timestamp: chrono::NaiveDateTime, pub data: &'a str, } @@ -44,6 +47,7 @@ pub struct NewHistory<'a> { #[derive(Insertable)] #[table_name = "users"] pub struct NewUser<'a> { + pub username: &'a str, pub email: &'a str, pub password: &'a str, } -- cgit v1.3.1