7b08fe611f
SectionPrinter is now working Migration: Section, Printers, SectionPrinters working
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import transaction
|
|
from pyramid.response import Response
|
|
from sqlalchemy.exc import OperationalError, IntegrityError, DBAPIError
|
|
from barker.models.validation_exception import ValidationError
|
|
|
|
|
|
def transactional_view(view, info):
|
|
if info.options.get("trans"):
|
|
|
|
def wrapper_view(context, request):
|
|
try:
|
|
response = view(context, request)
|
|
except (
|
|
ValidationError,
|
|
ValueError,
|
|
KeyError,
|
|
AttributeError,
|
|
TypeError,
|
|
OperationalError,
|
|
IntegrityError,
|
|
DBAPIError,
|
|
) as ex:
|
|
transaction.abort()
|
|
response = Response()
|
|
response.status_int = 500
|
|
response.content_type = "application/json"
|
|
response.json = {"Error": "Failed validation: {0!s}".format(ex)}
|
|
return response
|
|
|
|
return wrapper_view
|
|
return view
|
|
|
|
|
|
# def transactional_view(view, info):
|
|
# return view
|
|
|
|
|
|
transactional_view.options = ("trans",)
|