Esempio n. 1
0
 def handle_object(self, object):
     """ Called to handle everything, looks for the correct handling """
     if (type(object) is types.FunctionType
             or type(object) is types.MethodType):
         raise UnableToSerializeMethodTypesError(type(object))
     elif isinstance(object, dict):
         return self.handle_dictionary(object)
     elif (isinstance(object, list) or isinstance(object, tuple)):
         return self.handle_list(object)
     elif isinstance(object, Model):
         #return super(JSONSerializer,self).serialize([object], **self.options.copy())[0]
         return PythonSerializer().serialize([object],
                                             **self.options.copy())
     elif isinstance(object, QuerySet):
         #return super(JSONSerializer,self).serialize(object, **self.options.copy())[0]
         return PythonSerializer().serialize(object, **self.options.copy())
     elif (isinstance(object, int) or isinstance(object, float)
           or isinstance(object, long) or isinstance(object, basestring)
           or isinstance(object, bool) or object is None):
         return object
     elif (isinstance(object, datetime.datetime)
           or isinstance(object, datetime.date)
           or isinstance(object, datetime.time)
           or isinstance(object, decimal.Decimal)):
         return DjangoJSONEncoder().default(object)
     elif isinstance(object, GEOSGeometry):
         return getattr(object, self.geom_format)
     elif hasattr(object, '__dict__'):
         return self.handle_dictionary(object.__dict__)
     else:
         raise UnableToSerializeError(type(object))
Esempio n. 2
0
class TaskResourceView(View, Resource):
    serializer = PythonSerializer()

    @method_decorator(login_required)
    @method_decorator(csrf_exempt)
    def dispatch(self, *args, **kwargs):
        return super(TaskResourceView, self).dispatch(*args, **kwargs)

    def get(self, request, instance_id, *args, **kwargs):
        self.authenticate(request)

        tasks = Task.objects.select_related('choice_set').all()
        tasks_list = self.serializer.serialize(tasks)

        for task in tasks_list:
            choices = Choice.objects.filter(task=task['pk'])
            choice_list = self.flatten(self.serializer.serialize(choices))
            task['fields']['description'] = removetags(
                task['fields']['description'], 'span')
            task['fields']['choices'] = choice_list
            task['fields']['number'] = task['fields']['number'] + 1

        return HttpResponse(self.to_json(tasks_list),
                            mimetype='application/json',
                            status=200)
Esempio n. 3
0
class LoginResourceView(View, Resource):
    serializer = PythonSerializer()

    @method_decorator(csrf_exempt)
    def dispatch(self, *args, **kwargs):
        return super(LoginResourceView, self).dispatch(*args, **kwargs)

    def post(self, request, *args, **kwargs):
        data = json.loads(request.body)
        email = data['email']
        qset = NewRecruit.objects.filter(email=email)

        if qset.exists():
            user = qset[0]
            request.session['user'] = user
            rval = {
                "success": True,
                "user": {
                    "email": user.email,
                    "name": user.name,
                },
            }

            return HttpResponse(json.dumps(rval),
                                mimetype='application/json',
                                status=200)

        rval = {
            "success": False,
        }

        return HttpResponse(json.dumps(rval),
                            mimetype='application/json',
                            status=401)
Esempio n. 4
0
def test_serialization():
    from django.core.serializers.python import Serializer as PythonSerializer
    m = MyModel(color=Color.RED, taste=Taste.SALTY)
    ser = PythonSerializer()
    ser.serialize([m])
    fields = ser.getvalue()[0]["fields"]
    assert fields["color"] == m.color.value
    assert fields["taste"] == m.taste.value
Esempio n. 5
0
class LogoutResourceView(View, Resource):
    serializer = PythonSerializer()

    @method_decorator(csrf_exempt)
    def dispatch(self, *args, **kwargs):
        return super(LogoutResourceView, self).dispatch(*args, **kwargs)

    def post(self, request, *args, **kwargs):
        del request.session['user']
        return HttpResponse('', mimetype='application/json', status=204)
Esempio n. 6
0
 def handle_object(self, object):
     """ Called to handle everything, looks for the correct handling """
     # print type(object)
     # print inspect.isclass(object)
     # print inspect.ismethod(object)
     # print inspect.isfunction(object)
     # print inspect.isbuiltin(object)
     # print inspect.isroutine(object)
     # print inspect.isabstract(object)
     # print type(object) == 'staticmethod'
     if (inspect.isroutine(object) or
         inspect.isbuiltin(object) or
         inspect.isclass(object)):
         raise UnableToSerializeMethodTypesError(type(object))
     elif isinstance(object, dict):
         return self.handle_dictionary(object)
     elif (isinstance(object, list) or 
           isinstance(object, tuple)):
         return self.handle_list(object)
     elif isinstance(object, Model):
         #return super(JSONSerializer,self).serialize([object], **self.options.copy())[0]
         return self.handle_object(model_to_dict(object))
         return PythonSerializer().serialize([object],**self.options.copy())[0]['fields']
     elif isinstance(object, QuerySet):
         #return super(JSONSerializer,self).serialize(object, **self.options.copy())[0]
         ret = []
         for item in object:
             ret.append(self.handle_object(item))
         return ret
     elif (isinstance(object, int) or
           isinstance(object, float) or 
           isinstance(object, long) or 
           isinstance(object, basestring) or 
           isinstance(object, bool) or 
           object is None):
         return object
     elif (isinstance(object, datetime.datetime) or
           isinstance(object, datetime.date) or
           isinstance(object, datetime.time) or
           isinstance(object, decimal.Decimal)):
         return DjangoJSONEncoder().default(object)
     elif isinstance(object, GEOSGeometry):
         return getattr(object, self.geom_format)
     elif isinstance(object, File):
         return object.name
     elif hasattr(object, '__dict__'):
         return self.handle_dictionary(object.__dict__)
     else:
         raise UnableToSerializeError(type(object))
Esempio n. 7
0
class BadgeResourceView(View, Resource):
    serializer = PythonSerializer()

    @method_decorator(login_required)
    @method_decorator(csrf_exempt)
    def dispatch(self, *args, **kwargs):
        return super(BadgeResourceView, self).dispatch(*args, **kwargs)

    def get(self, request, instance_id, *args, **kwargs):
        self.authenticate(request)

        badges = Badge.objects.all()
        badge_list = self.serializer.serialize(badges)

        return HttpResponse(self.to_json(badge_list),
                            mimetype='application/json',
                            status=200)
Esempio n. 8
0
	def _googleModel(data):
		return PythonSerializer().serialize([data])[0]