From 2911b195f4358995aa4821ced33f90c9c741fa75 Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Fri, 3 Jan 2025 14:40:52 +0000 Subject: [PATCH] Don't create new doc if one already exists with the same content --- backend/sync_server/src/server/create_document.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/backend/sync_server/src/server/create_document.rs b/backend/sync_server/src/server/create_document.rs index 18ecffac..50b9d862 100644 --- a/backend/sync_server/src/server/create_document.rs +++ b/backend/sync_server/src/server/create_document.rs @@ -7,6 +7,7 @@ use axum_extra::{ headers::{authorization::Bearer, Authorization}, TypedHeader, }; +use log::info; use schemars::JsonSchema; use serde::Deserialize; use sync_lib::{base64_to_bytes, merge}; @@ -68,6 +69,19 @@ pub async fn create_document( .context("Failed to decode bytes as UTF-8") .map_err(client_error)?; + if merged_content == existing_version.content { + info!( + "Content of the new version is the same as the existing version. Not creating a \ + new version." + ); + transaction + .rollback() + .await + .context("Failed to rollback unecceseary transaction") + .map_err(server_error)?; + return Ok(Json(existing_version.into())); + } + StoredDocumentVersion { vault_id, vault_update_id: last_update_id + 1,