Skip to content

Commit a32eef3

Browse files
committed
request data validation
1 parent 2c358b3 commit a32eef3

3 files changed

Lines changed: 19 additions & 16 deletions

File tree

backend/src/kitconcept/keywordmanager/services/delete.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@ class KeywordsDelete(Service):
99
def reply(self):
1010
data = json_body(self.request)
1111
km = getUtility(IKeywordManager)
12-
keywords = data.get("items", [])
12+
keywords = data.get("items") or []
1313

14-
if isinstance(keywords, str):
15-
keywords = [keywords]
14+
if not isinstance(keywords, list):
15+
raise BadRequest("")
16+
if not keywords:
17+
raise BadRequest("")
1618

17-
try:
18-
km.delete(keywords)
19-
except Exception as err:
20-
raise BadRequest(err) from err
19+
km.delete(keywords)
2120

2221
return self.reply_no_content()

backend/src/kitconcept/keywordmanager/services/get.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ def reply(self):
1414
keywords = km.getKeywords(**query)
1515

1616
batch = HypermediaBatch(self.request, keywords)
17-
items = []
18-
for kw in batch:
19-
items.append({"name": kw[0], "total": kw[1]})
17+
items = {{"name": name, "total": count} for name, count in batch}
2018

2119
keywords_data = {
2220
"@id": batch.canonical_url,

backend/src/kitconcept/keywordmanager/services/update.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,18 @@ def reply(self):
1010
data = json_body(self.request)
1111
km = getUtility(IKeywordManager)
1212

13-
new_keyword = data.get("new_keyword", "")
14-
old_keywords = data.get("old_keywords", [])
13+
new_keyword = data.get("new_keyword") or ""
14+
old_keywords = data.get("old_keywords") or []
1515

16-
try:
17-
km.change(new_keyword, old_keywords)
18-
except Exception as err:
19-
raise BadRequest(err) from err
16+
if not isinstance(new_keyword, str):
17+
raise BadRequest("")
18+
if not new_keyword:
19+
raise BadRequest("")
20+
if not isinstance(old_keywords, list):
21+
raise BadRequest("")
22+
if not old_keywords:
23+
raise BadRequest("")
24+
25+
km.change(new_keyword, old_keywords)
2026

2127
return self.reply_no_content()

0 commit comments

Comments
 (0)