Skip to content

Commit 636ef37

Browse files
authored
Fix handling of errors in aliases CSV upload (#1838)
* Fix handling of errors in aliases CSV upload * changelog
1 parent e634169 commit 636ef37

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

news/1837.bugfix

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
URL Management control panel: Fix error handling in CSV upload. @davisagli

src/plone/restapi/services/aliases/add.py

+10
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,22 @@ def _reply_csv(self):
101101
raise BadRequest("Uploaded file is not a valid CSV file")
102102

103103
controlpanel = RedirectsControlPanel(self.context, self.request)
104+
csv_errors = controlpanel.csv_errors = []
104105
storage = getUtility(IRedirectionStorage)
105106
status = IStatusMessage(self.request)
106107
portal = getSite()
107108
controlpanel.upload(file, portal, storage, status)
108109
file.close()
109110

111+
if csv_errors:
112+
self.request.response.setHeader("Content-Type", "application/json")
113+
self.request.response.setStatus(BadRequest)
114+
return {
115+
"type": "BadRequest",
116+
"message": f"Found {len(csv_errors)} errors in CSV file.",
117+
# Skip first item which is a notice about the delimiter
118+
"csv_errors": csv_errors[1:],
119+
}
110120
if err := status.show():
111121
if err[0].type == "error":
112122
raise BadRequest(err[0].message)

0 commit comments

Comments
 (0)