@@ -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