diff --git a/src/CaosDB.jl b/src/CaosDB.jl index 726f01c9955a2f850e6d6b457f4fe61a3ef014bb..0409f4d8795edc1ecd0d19d057172e75c0bb253a 100644 --- a/src/CaosDB.jl +++ b/src/CaosDB.jl @@ -86,6 +86,7 @@ export create_transaction, add_insert_entity, add_update_entity, add_delete_by_id, + add_retrieve_and_download_file_by_id, add_query, execute, get_result_set, diff --git a/src/Transaction.jl b/src/Transaction.jl index 80bf3df0d43b031c62a039b738c0a8345a5bf050..5e33578dab4294ec434e25c87530447bb188e36f 100644 --- a/src/Transaction.jl +++ b/src/Transaction.jl @@ -29,6 +29,7 @@ export create_transaction, add_insert_entity, add_update_entity, add_delete_by_id, + add_retrieve_and_download_file_by_id, execute, get_result_set, get_count_result, @@ -235,6 +236,29 @@ function add_retrieve_by_id( 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_retrieve_and_download_file_by_id(transaction::Ref{_Transaction}, id::AbstractString, path::AbstractString) + + err_code = ccall( + (:caosdb_transaction_transaction_retrieve_and_download_file_by_id, CaosDB.library_name), + Cint, + (Ref{_Transaction}, Cstring, Cstring), + transaction, + id, + path, + ) + + CaosDB.Exceptions.evaluate_return_code(err_code) +end + """ function add_query(transaction::Ref{_Transaction}, query::AbstractString)