diff options
| author | Ellie Huxtable <ellie@elliehuxtable.com> | 2022-11-04 09:08:20 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-04 09:08:20 +0000 |
| commit | e297b98f721bf32d8d4331677eefe49823db32b9 (patch) | |
| tree | e30910e2e1e82a0e15fcbc3d8869e35ae99936f8 /atuin-common | |
| parent | Build ARM64 releases & update runners (#593) (diff) | |
| download | atuin-e297b98f721bf32d8d4331677eefe49823db32b9.zip | |
Add local event log storage (#390)
* Add event data structures
This adds the data structures required to start syncing events, rather
than syncing history directly.
Adjust event
Fix
Add event data structure to client
* Add server event table sql
* Add client event table migration
Adjust migration
* Insert into event table from client
* Add event merge function
Right now this just ensures we have the right amount of events given the
history we have
BUT it will also be used to merge CREATE/DELETE events, resulting in
history being deleted :)
* Make CI happy
* Adjust
* we don't limit history length any more
* Update atuin-client/src/database.rs
Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
* fix usage
* Fix typo
* New Rust, new clippy stuff
Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
Diffstat (limited to 'atuin-common')
| -rw-r--r-- | atuin-common/src/api.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/atuin-common/src/api.rs b/atuin-common/src/api.rs index f17cfd58..f5d5daa6 100644 --- a/atuin-common/src/api.rs +++ b/atuin-common/src/api.rs @@ -65,3 +65,32 @@ pub struct IndexResponse { pub homage: String, pub version: String, } + +// Doubled up with the history sync stuff, because atm we need to support BOTH. +// People are still running old clients, and in some cases _very_ old clients. +#[derive(Debug, Serialize, Deserialize)] +pub enum AddEventRequest { + Create(AddHistoryRequest), + + Delete { + id: String, + timestamp: chrono::DateTime<Utc>, + hostname: chrono::DateTime<Utc>, + + // When we delete a history item, we push up an event marking its client + // id as being deleted. + history_id: String, + }, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct SyncEventRequest { + pub sync_ts: chrono::DateTime<chrono::FixedOffset>, + pub event_ts: chrono::DateTime<chrono::FixedOffset>, + pub host: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct SyncEventResponse { + pub events: Vec<String>, +} |
