From f6c01c1f1be73711798473193f8e6b1c732e1162 Mon Sep 17 00:00:00 2001
From: florian <f.spreckelsen@inidscale.com>
Date: Tue, 17 Aug 2021 13:25:54 +0200
Subject: [PATCH] DRAFT: Implement insert, update, and delete

---
 src/ccaosdb.cpp | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/src/ccaosdb.cpp b/src/ccaosdb.cpp
index d962c5b..9a62cb0 100644
--- a/src/ccaosdb.cpp
+++ b/src/ccaosdb.cpp
@@ -461,6 +461,44 @@ ERROR_RETURN_CODE(GENERIC_ERROR,
                     return wrapped_transaction->Query(std::string(query));
                   })
 
+ERROR_RETURN_CODE(
+  GENERIC_ERROR,
+  int caosdb_transaction_transaction_insert_entity(
+    caosdb_transaction_transaction *transaction, caosdb_entity_entity *entity),
+  {
+    auto *wrapped_transaction = static_cast<caosdb::transaction::Transaction *>(
+      transaction->wrapped_transaction);
+    auto *wrapped_entity =
+      static_cast<caosdb::entity::Entity *>(entity->wrapped_entity);
+
+    return wrapped_transaction->InsertEntity(*wrapped_entity);
+  })
+
+ERROR_RETURN_CODE(
+  GENERIC_ERROR,
+  int caosdb_transaction_transaction_update_entity(
+    caosdb_transaction_transaction *transaction, caosdb_entity_entity *entity),
+  {
+    auto *wrapped_transaction = static_cast<caosdb::transaction::Transaction *>(
+      transaction->wrapped_transaction);
+    auto *wrapped_entity =
+      static_cast<caosdb::entity::Entity *>(entity->wrapped_entity);
+
+    return wrapped_transaction->UpdateEntity(*wrapped_entity);
+  })
+
+ERROR_RETURN_CODE(GENERIC_ERROR,
+                  int caosdb_transaction_transaction_delete_by_id(
+                    caosdb_transaction_transaction *transaction,
+                    const char *id),
+                  {
+                    auto *wrapped_transaction =
+                      static_cast<caosdb::transaction::Transaction *>(
+                        transaction->wrapped_transaction);
+
+                    return wrapped_transaction->DeleteById(std::string(id))
+                  })
+
 ERROR_RETURN_CODE(GENERIC_ERROR,
                   int caosdb_transaction_transaction_execute(
                     caosdb_transaction_transaction *transaction),
-- 
GitLab