From 3daf949261062a648c8e902813436f5cfa97c5d9 Mon Sep 17 00:00:00 2001
From: Alexander Kreft <akreft@trineo.org>
Date: Wed, 25 Aug 2021 14:52:57 +0000
Subject: [PATCH] ENH: add delete_by_id

---
 src/CaosDB.jl      |  1 +
 src/Transaction.jl | 22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/src/CaosDB.jl b/src/CaosDB.jl
index e08fbbf..726f01c 100644
--- a/src/CaosDB.jl
+++ b/src/CaosDB.jl
@@ -85,6 +85,7 @@ export create_transaction,
     add_retrieve_by_id,
     add_insert_entity,
     add_update_entity,
+    add_delete_by_id,
     add_query,
     execute,
     get_result_set,
diff --git a/src/Transaction.jl b/src/Transaction.jl
index 24e223f..80bf3df 100644
--- a/src/Transaction.jl
+++ b/src/Transaction.jl
@@ -28,6 +28,7 @@ export create_transaction,
     add_query,
     add_insert_entity,
     add_update_entity,
+    add_delete_by_id,
     execute,
     get_result_set,
     get_count_result,
@@ -181,6 +182,27 @@ function add_update_entity(transaction::Ref{_Transaction}, entity::Ref{CaosDB.En
 
     CaosDB.Exceptions.evaluate_return_code(err_code)
 end
+"""
+    function add_delete_by_id(transaction::Ref{_Transaction}, id::AbstractString)
+
+Add a sub-request to delete a single entity to the given `transaction`.
+
+!!! info
+
+    This does not execute the transaction.
+"""
+function add_delete_by_id(transaction::Ref{_Transaction}, id::AbstractString)
+
+    err_code = ccall(
+        (:caosdb_transaction_transaction_delete_by_id, CaosDB.library_name),
+        Cint,
+        (Ref{_Transaction}, Cstring),
+        transaction,
+        id,
+    )
+
+    CaosDB.Exceptions.evaluate_return_code(err_code)
+end
 
 """
     function add_retrieve_by_id(
-- 
GitLab