web/_exceptions.py
changeset 0 b97547f5f1fa
child 320 e2647e72afe7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/_exceptions.py	Wed Nov 05 15:52:50 2008 +0100
@@ -0,0 +1,57 @@
+# pylint: disable-msg=W0401,W0614
+"""exceptions used in the core of the CubicWeb web application
+
+:organization: Logilab
+:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
+"""
+__docformat__ = "restructuredtext en"
+
+from cubicweb._exceptions import *
+
+class PublishException(CubicWebException):
+    """base class for publishing related exception"""
+    
+class RequestError(PublishException):
+    """raised when a request can't be served because of a bad input"""
+
+class NothingToEdit(RequestError):
+    """raised when an edit request doesn't specify any eid to edit"""
+    
+class NotFound(RequestError):
+    """raised when a 404 error should be returned"""
+
+class Redirect(PublishException):
+    """raised to redirect the http request"""
+    def __init__(self, location):
+        self.location = location
+
+class DirectResponse(Exception):
+    def __init__(self, response):
+        self.response = response
+
+class StatusResponse(Exception):
+    def __init__(self, status, content=''):
+        self.status = int(status)
+        self.content = content
+    
+class ExplicitLogin(AuthenticationError):
+    """raised when a bad connection id is given or when an attempt to establish
+    a connection failed"""
+
+class InvalidSession(CubicWebException):
+    """raised when a session id is found but associated session is not found or
+    invalid
+    """
+
+class RemoteCallFailed(RequestError):
+    """raised when a json remote call fails
+    """
+    def __init__(self, reason=''):
+        super(RequestError, self).__init__()
+        self.reason = reason
+
+    def dumps(self):
+        import simplejson
+        return simplejson.dumps({'reason': self.reason})
+