Example #1
0
 def inner(*args, **kwargs):
     try:
         return fn(*args, **kwargs)
     except Exception as e:
         _err = ""
         
         try:
             _err = format_error(None, e)
         except:
             _err = str(e)
         
         try:    
             logger.error(_err)
         except:
             _err += "\n !COULD NOT LOG EXCEPTION LOCALLY!"
         
         if settings.ERROR_NOTIFICATION:
             try:
                 from yoolotto.communication.email import EmailSender
                 email = EmailSender(settings.ERROR_EMAIL, "YL Exception: " + str(e), 
                     text=_err)
                 email.send()
             except:
                 logger.error("\n\nERROR HANDLING EXCEPTION")
                 logger.error(traceback.format_exc() + "\n\n")
         raise
Example #2
0
 def wrapped(*args, **kwargs):
     try:
         request = args[1]
         
         if not hasattr(request, "yoo"):
             request.yoo = {
                 "user": None,
                 "auth": {
                     "success": False,
                     "required": False
                 }
             }
         
         result = fn(*args, **kwargs)
     except WebServiceException as e:
         return e.response()
     except ObjectDoesNotExist as e:
         logger.error(e)
         logger.error(traceback.format_exc())
         if settings.DEBUG:
             _e = WebServiceObjectDoesNotExist(e.message)
         else:
             _e = WebServiceObjectDoesNotExist("ObjectDoesNotExist")
         return _e.response()
     except Exception as e:
         _err = ""
         
         try:
             _err = format_error(request, e)
         except:
             _err = str(e)
         
         try:    
             logger.error(_err)
         except:
             _err += "\n !COULD NOT LOG EXCEPTION LOCALLY!"
         
         from yoolotto.lottery.game.base import LotteryPlayInvalidException
         
         if settings.ERROR_NOTIFICATION and not isinstance(e, LotteryPlayInvalidException):
             try:
                 from yoolotto.communication.email import EmailSender
                 email = EmailSender(settings.ERROR_EMAIL, "YL Exception: " + str(e), 
                     text=_err)
                 email.send()
             except:
                 logger.error("\n\nERROR HANDLING EXCEPTION")
                 logger.error(traceback.format_exc() + "\n\n")
         
         if hasattr(e, "representation"):
             return e.representation()
         
         raise
     
     if not isinstance(result, HttpResponse):
         result = json.dumps(result)
         result = HttpResponse(result, content_type="application/json")
     return result