Example #1
0
 def response(cls, data, request):
     if isinstance(request, XMLRequest):
         if isinstance(data, TrytonException):
             data = client.Fault(data.code, str(data))
         elif isinstance(data, Exception):
             data = client.Fault(255, str(data))
         else:
             data = (data,)
         return Response(client.dumps(
                 data, methodresponse=True, allow_none=True),
             content_type='text/xml')
     else:
         if isinstance(data, UserWarning):
             return Conflict(data)
         elif isinstance(data, LoginException):
             return Forbidden(data)
         elif isinstance(data, ConcurrencyException):
             return Locked(data)
         elif isinstance(data, RateLimitException):
             return TooManyRequests(data)
         elif isinstance(data, MissingDependenciesException):
             return InternalServerError(data)
         elif isinstance(data, TrytonException):
             return BadRequest(data)
         elif isinstance(data, Exception):
             return InternalServerError(data)
         return Response(data)
Example #2
0
 def response(cls, data, request):
     try:
         parsed_data = request.parsed_data
     except BadRequest:
         parsed_data = {}
     if (isinstance(request, JSONRequest)
             and set(parsed_data.keys()) == {'id', 'method', 'params'}):
         response = {'id': parsed_data.get('id', 0)}
         if isinstance(data, TrytonException):
             response['error'] = data.args
         elif isinstance(data, Exception):
             # report exception back to server
             response['error'] = (str(data), data.__format_traceback__)
         else:
             response['result'] = data
     else:
         if isinstance(data, UserWarning):
             return Conflict(data)
         elif isinstance(data, LoginException):
             return Forbidden(data)
         elif isinstance(data, ConcurrencyException):
             return Locked(data)
         elif isinstance(data, RateLimitException):
             return TooManyRequests(data)
         elif isinstance(data, MissingDependenciesException):
             return InternalServerError(data)
         elif isinstance(data, TrytonException):
             return BadRequest(data)
         elif isinstance(data, Exception):
             return InternalServerError(data)
         response = data
     return Response(json.dumps(response,
                                cls=JSONEncoder,
                                separators=(',', ':')),
                     content_type='application/json')