diff --git a/backend/sync_server/src/server/create_document.rs b/backend/sync_server/src/server/create_document.rs index 67969e84..8145acdd 100644 --- a/backend/sync_server/src/server/create_document.rs +++ b/backend/sync_server/src/server/create_document.rs @@ -143,5 +143,10 @@ async fn internal_create_document( .context("Failed to commit successful transaction") .map_err(server_error)?; + state + .broadcasts + .send(vault_id, new_version.clone().into()) + .await?; + Ok(Json(new_version.into())) } diff --git a/backend/sync_server/src/server/delete_document.rs b/backend/sync_server/src/server/delete_document.rs index 74327198..c3567e5a 100644 --- a/backend/sync_server/src/server/delete_document.rs +++ b/backend/sync_server/src/server/delete_document.rs @@ -72,5 +72,10 @@ pub async fn delete_document( .context("Failed to commit successful transaction") .map_err(server_error)?; + state + .broadcasts + .send(vault_id, new_version.clone().into()) + .await?; + Ok(Json(new_version.into())) } diff --git a/backend/sync_server/src/server/requests.rs b/backend/sync_server/src/server/requests.rs index 3c888266..89820dbe 100644 --- a/backend/sync_server/src/server/requests.rs +++ b/backend/sync_server/src/server/requests.rs @@ -4,7 +4,7 @@ use axum_typed_multipart::TryFromMultipart; use schemars::JsonSchema; use serde::{self, Deserialize}; -use crate::database::models::{DocumentId, VaultUpdateId}; +use crate::app_state::database::models::{DocumentId, VaultUpdateId}; #[derive(Debug, Deserialize, JsonSchema)] #[serde(rename_all = "camelCase")] diff --git a/backend/sync_server/src/server/responses.rs b/backend/sync_server/src/server/responses.rs index 09b254ef..993bc7e7 100644 --- a/backend/sync_server/src/server/responses.rs +++ b/backend/sync_server/src/server/responses.rs @@ -1,7 +1,9 @@ use schemars::JsonSchema; use serde::{self, Serialize}; -use crate::database::models::{DocumentVersion, DocumentVersionWithoutContent, VaultUpdateId}; +use crate::app_state::database::models::{ + DocumentVersion, DocumentVersionWithoutContent, VaultUpdateId, +}; /// Response to a ping request. #[derive(Debug, Clone, Serialize, JsonSchema)] diff --git a/backend/sync_server/src/server/update_document.rs b/backend/sync_server/src/server/update_document.rs index 3b83f774..14a70118 100644 --- a/backend/sync_server/src/server/update_document.rs +++ b/backend/sync_server/src/server/update_document.rs @@ -12,13 +12,15 @@ use serde::Deserialize; use sync_lib::{base64_to_bytes, is_file_type_mergable, merge}; use super::{ - app_state::AppState, auth::auth, requests::{UpdateDocumentVersion, UpdateDocumentVersionMultipart}, responses::DocumentUpdateResponse, }; use crate::{ - database::models::{DocumentId, StoredDocumentVersion, VaultId, VaultUpdateId}, + app_state::{ + AppState, + database::models::{DocumentId, StoredDocumentVersion, VaultId, VaultUpdateId}, + }, errors::{SyncServerError, client_error, not_found_error, server_error}, utils::{deduped_file_paths, sanitize_path}, }; @@ -83,7 +85,7 @@ pub async fn update_document_json( #[allow(clippy::too_many_arguments, clippy::too_many_lines)] async fn internal_update_document( auth_header: Authorization, - mut state: AppState, + state: AppState, vault_id: VaultId, document_id: DocumentId, parent_version_id: VaultUpdateId, @@ -216,6 +218,11 @@ async fn internal_update_document( .context("Failed to commit successful transaction") .map_err(server_error)?; + state + .broadcasts + .send(vault_id, new_version.clone().into()) + .await?; + Ok(Json(if is_different_from_request_content { DocumentUpdateResponse::MergingUpdate(new_version.into()) } else {