From 1bdad5bcf1742b279ba0a2840aec526e4f6175a7 Mon Sep 17 00:00:00 2001 From: Zara Gebru Date: Fri, 8 Apr 2016 15:42:09 +0200 Subject: Issue #431: extractes the generic handling for error callbacks in init and handles login, logout, mail and tags resources --- service/pixelated/resources/__init__.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'service/pixelated/resources/__init__.py') diff --git a/service/pixelated/resources/__init__.py b/service/pixelated/resources/__init__.py index 469c8bc8..77425cc5 100644 --- a/service/pixelated/resources/__init__.py +++ b/service/pixelated/resources/__init__.py @@ -15,6 +15,7 @@ # along with Pixelated. If not, see . import json +import logging from twisted.web.http import UNAUTHORIZED from twisted.web.resource import Resource @@ -23,6 +24,9 @@ from twisted.web.resource import Resource from pixelated.resources.session import IPixelatedSession from pixelated.support import log_time +from twisted.web.http import INTERNAL_SERVER_ERROR +log = logging.getLogger(__name__) + class SetEncoder(json.JSONEncoder): def default(self, obj): @@ -47,7 +51,17 @@ def respond_json_deferred(entity, request, status_code=200): request.finish() -class BaseResource(Resource): +class GenericDeferredErrorHandler(object): + + @classmethod + def generic_error_handling(cls, e, request): + log.error(e) + request.setResponseCode(INTERNAL_SERVER_ERROR) + request.write('Something went wrong!') + request.finish() + + +class BaseResource(Resource, GenericDeferredErrorHandler): def __init__(self, services_factory): Resource.__init__(self) -- cgit v1.2.3