Skip to content

Commit bd0d7b8

Browse files
authored
refactor lists_json_post in prep for fastapi (#11991)
1 parent 479dd31 commit bd0d7b8

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

openlibrary/plugins/openlibrary/lists.py

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,23 @@ def POST(self, user_key):
552552
data = self.loads(web.data())
553553
# TODO: validate data
554554

555-
seeds = self.process_seeds(data.get("seeds", []))
555+
try:
556+
result = self.process_new_list(user, data, site)
557+
except ValueError as e:
558+
if str(e) == "Spam list":
559+
raise self.forbidden()
560+
raise
561+
except client.ClientException as e:
562+
headers = {"Content-Type": self.get_content_type()}
563+
err_data = {"message": str(e)}
564+
raise web.HTTPError(e.status, data=self.dumps(err_data), headers=headers)
565+
566+
web.header("Content-Type", self.get_content_type())
567+
return delegate.RawText(self.dumps(result))
568+
569+
@staticmethod
570+
def process_new_list(user, data, site):
571+
seeds = lists_json.process_seeds(data.get("seeds", []))
556572

557573
lst = user.new_list(
558574
name=data.get("name", ""),
@@ -562,22 +578,14 @@ def POST(self, user_key):
562578
)
563579

564580
if spamcheck.is_spam(lst):
565-
raise self.forbidden()
581+
raise ValueError("Spam list")
566582

567-
try:
568-
result = site.save(
569-
lst.dict(),
570-
comment="Created new list.",
571-
action="lists",
572-
data={"list": {"key": lst.key}, "seeds": seeds},
573-
)
574-
except client.ClientException as e:
575-
headers = {"Content-Type": self.get_content_type()}
576-
data = {"message": str(e)}
577-
raise web.HTTPError(e.status, data=self.dumps(data), headers=headers)
578-
579-
web.header("Content-Type", self.get_content_type())
580-
return delegate.RawText(self.dumps(result))
583+
return site.save(
584+
lst.dict(),
585+
comment="Created new list.",
586+
action="lists",
587+
data={"list": {"key": lst.key}, "seeds": seeds},
588+
)
581589

582590
@staticmethod
583591
def process_seeds(

0 commit comments

Comments
 (0)