# HG changeset patch
# User Fabien Amarger <fabien.amarger@logilab.fr>
# Date 1708958758 -3600
#      Mon Feb 26 15:45:58 2024 +0100
# Node ID 4e4f832447526e7e858393f06370836311493b13
# Parent  f88ce8d8eff7210ff83b4542e558c19967e80c35
feat(process_helpers): Add helper function to update graph to the endpoint

diff --git a/cubicweb_rodolf/process_helpers.py b/cubicweb_rodolf/process_helpers.py
--- a/cubicweb_rodolf/process_helpers.py
+++ b/cubicweb_rodolf/process_helpers.py
@@ -5,6 +5,14 @@
 
 from cubicweb.rdf import RDF_MIMETYPE_TO_FORMAT
 
+from rdf_data_manager import delete_graph, upload_graph
+
+from cubicweb_rodolf.schema import ImportProcedure
+
+
+UPLOAD_MAX = 3
+UPLOAD_DELAY = 10
+
 
 def get_graph_from_url(download_url: str, log: logging.Logger) -> Graph:
     response = requests.get(
@@ -15,7 +23,8 @@
     )
     if not response.ok:
         log.error(
-            f"Cannot get file {download_url}: {response.status_code} {response.text}"
+            f"Cannot get file {download_url}:"
+            f" {response.status_code} {response.text}"
         )
         response.raise_for_status()
     content_type = response.headers["Content-Type"]
@@ -28,3 +37,26 @@
     graph = ConjunctiveGraph()
     graph.parse(data=response.text, format=rdf_parse_format)
     return graph
+
+
+def upload_graph_to_sparql_endpoint(
+    import_procedure: ImportProcedure,
+    graph: Graph,
+    named_graph: str,
+    filename: str,
+    log: logging.Logger,
+) -> None:
+    delete_graph(
+        import_procedure.virtuoso_credentials,
+        named_graph,
+        UPLOAD_MAX,
+        UPLOAD_DELAY,
+    )
+    upload_graph(
+        import_procedure.virtuoso_credentials,
+        named_graph,
+        graph,
+        filename,
+        UPLOAD_MAX,
+        UPLOAD_DELAY,
+    )