Poprawienie serializacji
[redakcja.git] / apps / api / response.py
index 6b68562..4675015 100644 (file)
@@ -22,8 +22,8 @@ class ResponseObject(object):
         elif self._mime == MIME_JSON:
             data = json.dumps(body, default=lambda o: repr(o) )
         else:
-            data = u"%s\n%s" % (self.MESSAGE, unicode(body))
-            data = data.encode('utf-8')
+            data = u"%s\n%s" % (self.MESSAGE, unicode(body))
+            data = unicode(body).encode('utf-8')
             
         return HttpResponse(content=data, status=self._code, \
                 content_type=self._mime+'; charset=utf-8' )        
@@ -49,6 +49,7 @@ class RequestAccepted(ResponseObject):
 
     def django_response(self, ticket_status, ticket_uri):
         return ResponseObject.django_response(self, {
+            'result': 'accepted',
             'status': ticket_status,
             'refer_to': ticket_uri })     
         
@@ -73,10 +74,7 @@ class AccessDenied(ResponseObject):
 
     def __init__(self, **kwargs):
         ResponseObject.__init__(self, 403, **kwargs)
-
-    def django_response(self, reason):
-        return ResponseObject.django_response(self, \
-            body={'reason': reason})
+    
 
 class EntityNotFound(ResponseObject):
 
@@ -98,29 +96,12 @@ class EntityConflict(ResponseObject):
 #
 # Server side errors
 #
-class NotImplemented(ResponseObject):
+class InternalError(ResponseObject):
 
     def __init__(self, **kwargs):
-        ResponseObject.__init__(self, 501, **kwargs)
-
-def validate_form(formclass, source='GET'):
-    from functools import wraps
-
-    def decorator(func):
-        @wraps(func)
-        def decorated(self, request, *args, **kwargs):
-            form = formclass(getattr(request,  source), request.FILES)
-
-            if not form.is_valid():
-                errorlist = [{'field': k, 'errors': e} for k,e in form.errors]
-                return BadRequest().django_response(errorlist)
-            
-            return func(self, request, form, *args, **kwargs)
-        return decorated
-    return decorator
-       
-
-
-    
+        ResponseObject.__init__(self, 500, **kwargs)
 
+class NotImplemented(ResponseObject):
 
+    def __init__(self, **kwargs):
+        ResponseObject.__init__(self, 501, **kwargs) 
\ No newline at end of file