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