From 2b770bc27aaa118f4413c6d03a5eec12a5aaad72 Mon Sep 17 00:00:00 2001
From: Maximilian Moser <maximilian.moser@tuwien.ac.at>
Date: Thu, 19 Sep 2024 19:34:10 +0200
Subject: [PATCH] Detect reuse of existing file keys in draft files

---
 invenio_utilities_tuw/cli/drafts.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/invenio_utilities_tuw/cli/drafts.py b/invenio_utilities_tuw/cli/drafts.py
index 5628728..8af203a 100644
--- a/invenio_utilities_tuw/cli/drafts.py
+++ b/invenio_utilities_tuw/cli/drafts.py
@@ -339,7 +339,16 @@ def add_files(filepaths, pid, pid_type, user):
         )
         sys.exit(1)
 
-    # TODO: this fails if a file with the same name already exists
+    # check for existing duplicates
+    files = list(file_service.list_files(id_=recid, identity=identity).entries())
+    existing_file_keys = [e["key"] for e in files]
+    if any([k for k in keys if k in existing_file_keys]):
+        click.secho(
+            "aborting: reuse of existing file names detected", fg="yellow", err=True
+        )
+        sys.exit(1)
+
+    # if all went well so far, continue on
     file_service.init_files(
         id_=recid, identity=identity, data=[{"key": basename(fp)} for fp in paths]
     )
-- 
GitLab