Skip to content
Snippets Groups Projects
Commit b3e203dd authored by Henrik tom Wörden's avatar Henrik tom Wörden
Browse files

ENH: add insert, update, delete and file handling

parent 93e8788f
Branches
Tags
1 merge request!9F full
......@@ -75,7 +75,9 @@ export append_parent,
set_datatype,
set_unit,
set_value,
set_importance
set_importance,
set_local_path,
set_remote_path
# helper functions
export has_errors, has_warnings
......@@ -83,6 +85,10 @@ export has_errors, has_warnings
# Exports from module Transaction
export create_transaction,
add_retrieve_by_id,
add_insert_entity,
add_update_entity,
add_delete_by_id,
add_retrieve_and_download_file_by_id,
add_query,
execute,
get_result_set,
......
......@@ -62,7 +62,9 @@ export append_parent,
set_datatype,
set_unit,
set_value,
set_importance
set_importance,
set_local_path,
set_remote_path
# helper functions
export has_errors, has_warnings
......@@ -1733,6 +1735,39 @@ function set_importance(property::Ref{_Property}, importance::AbstractString)
CaosDB.Exceptions.evaluate_return_code(err_code)
end
"""
function set_local_path(entity::Ref{_Entity}, path::AbstractString)
Set the local path of the given `entity` object.
"""
function set_local_path(entity::Ref{_Entity}, path::AbstractString)
err_code = ccall(
(:caosdb_entity_entity_set_local_path, CaosDB.library_name),
Cint,
(Ref{_Entity}, Cstring),
entity,
path,
)
CaosDB.Exceptions.evaluate_return_code(err_code)
end
"""
function set_remote_path(entity::Ref{_Entity}, path::AbstractString)
Set the remote file path of the given `entity` object.
"""
function set_remote_path(entity::Ref{_Entity}, path::AbstractString)
err_code = ccall(
(:caosdb_entity_entity_set_file_path, CaosDB.library_name),
Cint,
(Ref{_Entity}, Cstring),
entity,
path,
)
CaosDB.Exceptions.evaluate_return_code(err_code)
end
"""
function append_parent(entity::Ref{_Entity}, parent::Ref{_Parent})
......
......@@ -26,6 +26,10 @@ module Transaction
export create_transaction,
add_retrieve_by_id,
add_query,
add_insert_entity,
add_update_entity,
add_delete_by_id,
add_retrieve_and_download_file_by_id,
execute,
get_result_set,
get_count_result,
......@@ -137,6 +141,76 @@ function add_retrieve_by_id(transaction::Ref{_Transaction}, id::AbstractString)
CaosDB.Exceptions.evaluate_return_code(err_code)
end
"""
function add_insert_entity(transaction::Ref{_Transaction}, entity::Ref{_CaosDB.Entity.Entity})
Add a sub-request to insert a single entity to the given `transaction`.
!!! info
This does not execute the transaction.
"""
function add_insert_entity(
transaction::Ref{_Transaction},
entity::Ref{CaosDB.Entity._Entity},
)
err_code = ccall(
(:caosdb_transaction_transaction_insert_entity, CaosDB.library_name),
Cint,
(Ref{_Transaction}, Ref{CaosDB.Entity._Entity}),
transaction,
entity,
)
CaosDB.Exceptions.evaluate_return_code(err_code)
end
"""
function add_update_entity(transaction::Ref{_Transaction}, entity::Ref{_CaosDB.Entity.Entity})
Add a sub-request to update a single entity to the given `transaction`.
!!! info
This does not execute the transaction.
"""
function add_update_entity(
transaction::Ref{_Transaction},
entity::Ref{CaosDB.Entity._Entity},
)
err_code = ccall(
(:caosdb_transaction_transaction_update_entity, CaosDB.library_name),
Cint,
(Ref{_Transaction}, Ref{CaosDB.Entity._Entity}),
transaction,
entity,
)
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(
transaction::Ref{_Transaction},
......@@ -168,6 +242,40 @@ function add_retrieve_by_id(
CaosDB.Exceptions.evaluate_return_code(err_code)
end
"""
function add_retrieve_and_download_file_by_id(
transaction::Ref{_Transaction},
id::AbstractString,
path::AbstractString,
)
Add a sub-request to retrieve and download a single entity (File) 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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment