Simplify API
This commit is contained in:
parent
a783a04cb4
commit
c9ce7fe4db
7 changed files with 18 additions and 13 deletions
|
|
@ -1,8 +1,7 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { DocumentVersion } from "./DocumentVersion";
|
||||
import type { DocumentVersionWithoutContent } from "./DocumentVersionWithoutContent";
|
||||
|
||||
/**
|
||||
* Response to an update document request.
|
||||
*/
|
||||
export type DocumentUpdateResponse = { "type": "Accepted" } & DocumentVersionWithoutContent | { "type": "StaleBase" } & DocumentVersion;
|
||||
export type DocumentUpdateResponse = { "type": "Accepted" } & DocumentVersionWithoutContent | { "type": "StaleBase" } & DocumentVersionWithoutContent;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { EventRecord } from "./EventRecord";
|
||||
|
||||
export type EventBatch = { headEventId: number, events: Array<EventRecord>, };
|
||||
export type EventBatch = { headEventId: number,
|
||||
/**
|
||||
* Last event in this page; `head_event_id` is the vault's current head.
|
||||
*/
|
||||
endEventId?: number, events: Array<EventRecord>, };
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type WebSocketHandshake = { token: string, deviceId: string, lastSeenVaultUpdateId: number | null, };
|
||||
export type WebSocketHandshake = { token: string, deviceId: string, };
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CursorPositionFromServer } from "./CursorPositionFromServer";
|
||||
import type { EventBatch } from "./EventBatch";
|
||||
|
||||
export type WebSocketServerMessage = { "type": "vaultEvents" } & EventBatch | { "type": "cursorPositions" } & CursorPositionFromServer;
|
||||
export type WebSocketServerMessage = { "type": "vaultChanged" } | { "type": "cursorPositions" } & CursorPositionFromServer;
|
||||
|
|
|
|||
|
|
@ -123,5 +123,11 @@ pub struct VaultSnapshot {
|
|||
pub struct EventBatch {
|
||||
#[ts(as = "f64")]
|
||||
pub head_event_id: VaultUpdateId,
|
||||
|
||||
/// Last event in this page; `head_event_id` is the vault's current head.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
#[ts(optional, as = "Option<f64>")]
|
||||
pub end_event_id: Option<VaultUpdateId>,
|
||||
|
||||
pub events: Vec<EventRecord>,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,13 @@
|
|||
use serde::{Deserialize, Serialize};
|
||||
use ts_rs::TS;
|
||||
|
||||
use crate::app_state::database::models::{DeviceId, DocumentId, EventBatch, VaultUpdateId};
|
||||
use crate::app_state::database::models::{DeviceId, DocumentId, VaultUpdateId};
|
||||
|
||||
#[derive(TS, Deserialize, Clone, Debug)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct WebSocketHandshake {
|
||||
pub token: String,
|
||||
pub device_id: DeviceId,
|
||||
|
||||
#[ts(as = "Option<i32>")]
|
||||
pub last_seen_vault_update_id: Option<VaultUpdateId>,
|
||||
}
|
||||
|
||||
#[derive(TS, Deserialize, Clone, Debug)]
|
||||
|
|
@ -67,6 +64,6 @@ pub enum WebSocketClientMessage {
|
|||
#[serde(rename_all = "camelCase", tag = "type")]
|
||||
#[ts(export)]
|
||||
pub enum WebSocketServerMessage {
|
||||
VaultEvents(EventBatch),
|
||||
VaultChanged,
|
||||
CursorPositions(CursorPositionFromServer),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use serde::{self, Deserialize, Serialize};
|
|||
use ts_rs::TS;
|
||||
|
||||
use crate::app_state::database::models::{
|
||||
DocumentVersion, DocumentVersionWithoutContent, FileManifest, VaultUpdateId,
|
||||
DocumentVersionWithoutContent, FileManifest, VaultUpdateId,
|
||||
};
|
||||
|
||||
/// Response to a ping request.
|
||||
|
|
@ -34,7 +34,7 @@ pub enum DocumentUpdateResponse {
|
|||
Accepted(DocumentVersionWithoutContent),
|
||||
|
||||
/// Nothing was written. The client must incorporate this version before retrying.
|
||||
StaleBase(DocumentVersion),
|
||||
StaleBase(DocumentVersionWithoutContent),
|
||||
}
|
||||
|
||||
#[derive(TS, Debug, Clone, Serialize, Deserialize)]
|
||||
|
|
|
|||
Loading…
Reference in a new issue