From 54c50be6f5fcc5e12604d6266b43512e75874bf9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 15 Jun 2025 22:53:08 +1200 Subject: [PATCH] 'Generic Commit' --- src/update_handler.cpp | 18 ++++++++---------- testing/test.sh | 4 ---- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/update_handler.cpp b/src/update_handler.cpp index 48c519d..1ef3fe5 100644 --- a/src/update_handler.cpp +++ b/src/update_handler.cpp @@ -120,20 +120,18 @@ void UpdateHandler::handle_update_object(const drogon::HttpRequestPtr& req, std: return; } - // Prepare updated entry - dbEntry updated_entry = entry; - updated_entry.metadata = new_metadata; + // Prepare new entry for database merge + dbEntry new_entry; + new_entry.hash = hash; + new_entry.metadata = new_metadata; - // Update labeltags if provided in the new metadata + // Extract labeltags if provided in the new metadata if (new_metadata.contains("labeltags") && new_metadata["labeltags"].is_array()) { - updated_entry.labeltags = new_metadata["labeltags"].get>(); + new_entry.labeltags = new_metadata["labeltags"].get>(); } - - // Ensure labeltags and hash are reflected in metadata - updated_entry.metadata["labeltags"] = updated_entry.labeltags; - updated_entry.metadata["hash"] = updated_entry.hash; + // If no labeltags provided, new_entry.labeltags will be empty and merge will preserve existing ones - if (!server_.db_->update_or_insert(updated_entry)) { + if (!server_.db_->update_or_insert(new_entry)) { resp->setStatusCode(drogon::k500InternalServerError); nlohmann::json response = {{"result", "error"}, {"error", "Failed to update metadata for hash: " + hash}}; resp->setBody(response.dump()); diff --git a/testing/test.sh b/testing/test.sh index 27a9531..6d46c6f 100755 --- a/testing/test.sh +++ b/testing/test.sh @@ -530,10 +530,6 @@ function test9() { #------------------------------------------------------------------------------------------------ test0 - -test8 -exit 0 - test1 test2 test3