From 2849c82255b4b889c7342a0a8fa8a4aecfbe599d Mon Sep 17 00:00:00 2001 From: François Schmidts Date: Sat, 17 Jan 2015 16:50:38 +0100 Subject: a first big refacto of the existing arch --- pyaggr3g470r/decorators.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'pyaggr3g470r/decorators.py') diff --git a/pyaggr3g470r/decorators.py b/pyaggr3g470r/decorators.py index 3e808793..a13dacac 100644 --- a/pyaggr3g470r/decorators.py +++ b/pyaggr3g470r/decorators.py @@ -5,8 +5,11 @@ from threading import Thread from functools import wraps from flask import g, redirect, url_for, flash +from flask.ext.babel import gettext +from flask.ext.login import login_required from pyaggr3g470r.models import Feed +from pyaggr3g470r.lib.exceptions import PyAggError def async(f): @@ -37,3 +40,23 @@ def feed_access_required(func): else: return func(*args, **kwargs) return decorated + + +def handle_pyagg_error(func): + @wraps(func) + def wrapper(*args, **kwargs): + try: + return func(*args, **kwargs) + except PyAggError, error: + flash(gettext(error.default_message), 'warning') + return redirect(url_for('home')) + return wrapper + + +def pyagg_default_decorator(func): + @login_required + @handle_pyagg_error + @wraps(func) + def wrapper(*args, **kwargs): + return func(*args, **kwargs) + return wrapper -- cgit