@@ -30,16 +30,22 @@ def apply_vars(self):
3030 self .rdict [key [:- 1 ]] = v
3131
3232 def get (self ):
33- for key in self .request_data :
34- if key [- 1 ]== "@" :
35- #vars need to be applied later
36- pass
37- elif key [- 2 :]== "[]" :
38- rsp = self ._get_array (key )
39- else :
40- rsp = self ._get_one (key )
41- if rsp : return rsp
42- self .apply_vars ()
33+ try :
34+ for key in self .request_data :
35+ if key [- 1 ]== "@" :
36+ #vars need to be applied later
37+ pass
38+ elif key [- 2 :]== "[]" :
39+ rsp = self ._get_array (key )
40+ else :
41+ rsp = self ._get_one (key )
42+ if rsp : return rsp
43+ self .apply_vars ()
44+ except Exception as e :
45+ err = "exception when handling 'apijson get': %s" % (e )
46+ log .error (err )
47+ traceback .print_exc ()
48+ return json ({"code" :400 ,"msg" :err })
4349 return json (self .rdict )
4450
4551 def _get_one (self ,key ):
@@ -258,9 +264,15 @@ def _filter_owner(self,model,model_setting,q):
258264 return owner_filtered ,q
259265
260266 def head (self ):
261- for key in self .request_data :
262- rsp = self ._head (key )
263- if rsp : return rsp
267+ try :
268+ for key in self .request_data :
269+ rsp = self ._head (key )
270+ if rsp : return rsp
271+ except Exception as e :
272+ err = "exception when handling 'apijson head': %s" % (e )
273+ log .error (err )
274+ traceback .print_exc ()
275+ return json ({"code" :400 ,"msg" :err })
264276
265277 return json (self .rdict )
266278
@@ -321,17 +333,24 @@ def _head(self,key):
321333 self .rdict [key ] = rdict
322334
323335 def post (self ):
324- tag = self .request_data .get ("@tag" )
325- if not tag :
326- return json ({"code" :400 ,"msg" :"'tag' parameter is needed" })
327- for key in self .request_data :
328- if key [0 ]!= "@" :
329- rsp = self ._post_one (key ,tag )
330- if rsp :
331- return rsp
332- else :
333- #only accept one table
334- return json (self .rdict )
336+ try :
337+ tag = self .request_data .get ("@tag" )
338+ if not tag :
339+ return json ({"code" :400 ,"msg" :"'tag' parameter is needed" })
340+ for key in self .request_data :
341+ if key [0 ]!= "@" :
342+ rsp = self ._post_one (key ,tag )
343+ if rsp :
344+ return rsp
345+ else :
346+ #only accept one table
347+ return json (self .rdict )
348+ except Exception as e :
349+ err = "exception when handling 'apijson post': %s" % (e )
350+ log .error (err )
351+ traceback .print_exc ()
352+ return json ({"code" :400 ,"msg" :err })
353+
335354 return json (self .rdict )
336355
337356 def _post_one (self ,key ,tag ):
@@ -423,17 +442,23 @@ def _post_one(self,key,tag):
423442 self .rdict [key ] = obj_dict
424443
425444 def put (self ):
426- tag = self .request_data .get ("@tag" )
427- if not tag :
428- return json ({"code" :400 ,"msg" :"'tag' parameter is needed" })
429- for key in self .request_data :
430- if key [0 ]!= "@" :
431- rsp = self ._put_one (key ,tag )
432- if rsp :
433- return rsp
434- else :
435- #only accept one table
436- return json (self .rdict )
445+ try :
446+ tag = self .request_data .get ("@tag" )
447+ if not tag :
448+ return json ({"code" :400 ,"msg" :"'tag' parameter is needed" })
449+ for key in self .request_data :
450+ if key [0 ]!= "@" :
451+ rsp = self ._put_one (key ,tag )
452+ if rsp :
453+ return rsp
454+ else :
455+ #only accept one table
456+ return json (self .rdict )
457+ except Exception as e :
458+ err = "exception when handling 'apijson put': %s" % (e )
459+ log .error (err )
460+ traceback .print_exc ()
461+ return json ({"code" :400 ,"msg" :err })
437462
438463 return json (self .rdict )
439464
@@ -527,17 +552,23 @@ def _put_one(self,key,tag):
527552 self .rdict [key ] = obj_dict
528553
529554 def delete (self ):
530- tag = self .request_data .get ("@tag" )
531- if not tag :
532- return json ({"code" :400 ,"msg" :"'tag' parameter is needed" })
533- for key in self .request_data :
534- if key [0 ]!= "@" :
535- rsp = self ._delete_one (key ,tag )
536- if rsp :
537- return rsp
538- else :
539- #only accept one table
540- return json (self .rdict )
555+ try :
556+ tag = self .request_data .get ("@tag" )
557+ if not tag :
558+ return json ({"code" :400 ,"msg" :"'tag' parameter is needed" })
559+ for key in self .request_data :
560+ if key [0 ]!= "@" :
561+ rsp = self ._delete_one (key ,tag )
562+ if rsp :
563+ return rsp
564+ else :
565+ #only accept one table
566+ return json (self .rdict )
567+ except Exception as e :
568+ err = "exception when handling 'apijson delete': %s" % (e )
569+ log .error (err )
570+ traceback .print_exc ()
571+ return json ({"code" :400 ,"msg" :err })
541572 return json (self .rdict )
542573
543574 def _delete_one (self ,key ,tag ):
0 commit comments