aboutsummaryrefslogtreecommitdiffstats
path: root/src/remote/models.rs
diff options
context:
space:
mode:
authorEllie Huxtable <e@elm.sh>2021-04-13 19:14:07 +0100
committerGitHub <noreply@github.com>2021-04-13 19:14:07 +0100
commit5751463942cc91f1f1ffaf6e2ac633d7a0085f25 (patch)
treef7b5b9a4702c4c3ef29aa60d36612f61ffeae052 /src/remote/models.rs
parentUpdate config (diff)
downloadatuin-5751463942cc91f1f1ffaf6e2ac633d7a0085f25.zip
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
Diffstat (limited to 'src/remote/models.rs')
-rw-r--r--src/remote/models.rs16
1 files changed, 10 insertions, 6 deletions
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,
}