import functools
|
|
import flask
|
from werkzeug.local import LocalProxy
|
|
|
class InputValidationException(Exception):
|
pass
|
|
|
class Blueprint(flask.Blueprint):
|
logger = LocalProxy(lambda: flask.current_app.logger)
|
|
def route(self, route, **options):
|
parent_function_wrapper = super().route(route, **options)
|
|
def newFunctionWrapper(func):
|
@functools.wraps(func)
|
def newFunction():
|
try:
|
result = func()
|
except InputValidationException as e:
|
self.logger.error(e)
|
return {
|
'Err': e.args[0],
|
}
|
return result
|
|
return parent_function_wrapper(newFunction)
|
|
return newFunctionWrapper
|
|
|
app = Blueprint('Plugin', __name__)
|
|
functions = []
|
|
|
@app.route('/Plugin.Activate', methods=['POST'])
|
def Activate():
|
return {
|
'Implements': functions,
|
}
|
|
|
__all__ = ['InputValidationException', 'Blueprint', 'app', 'functions']
|