Ejemplo n.º 1
0
 def patch_list(self, request, **kwargs):
     request = convert_post_to_patch(request)
     deserialized = self.deserialize(request,
                                     request.body,
                                     format=request.META.get(
                                         'CONTENT_TYPE',
                                         'application/json'))
     for data in deserialized["objects"]:
         data = self.alter_deserialized_detail_data(request, data)
         bundle = self.build_bundle(data=dict_strip_unicode_keys(data))
         bundle.request.user = request.user
         bundle.request.META['REMOTE_ADDR'] = request.META.get(
             'REMOTE_ADDR', '0.0.0.0')
         bundle.request.META['HTTP_USER_AGENT'] = request.META.get(
             'HTTP_USER_AGENT', 'unknown')
         self.obj_create(bundle, request=request)
     response_data = {
         'points': self.dehydrate_points(bundle),
         'badges': self.dehydrate_badges(bundle),
         'scoring': self.dehydrate_scoring(bundle),
         'badging': self.dehydrate_badging(bundle),
         'metadata': self.dehydrate_metadata(bundle),
         'course_points': self.dehydrate_course_points(bundle),
     }
     response = HttpResponse(content=json.dumps(response_data),
                             content_type="application/json; charset=utf-8")
     return response
Ejemplo n.º 2
0
    def patch_list(self, request, **kwargs):
        request = convert_post_to_patch(request)
        deserialized = self.deserialize(request, request.body,
                                        format=request.META.get('CONTENT_TYPE', 'application/json'))
        for data in deserialized.get("objects"):
            data = self.alter_deserialized_detail_data(request, data)
            bundle = self.build_bundle(data=dict_strip_unicode_keys(data))
            bundle.request.user = request.user
            bundle.request.META['REMOTE_ADDR'] = request.META.get('REMOTE_ADDR', api.DEFAULT_IP_ADDRESS)
            bundle.request.META['HTTP_USER_AGENT'] = request.META.get('HTTP_USER_AGENT', 'unknown')
            # check UUID not already submitted
            if 'data' in bundle.data:
                json_data = json.loads(bundle.data['data'])
                if 'uuid' in json_data:
                    uuids = Tracker.objects.filter(uuid=json_data['uuid'])
                    if uuids.count() == 0:
                        self.obj_create(bundle, request=request)
                else:
                    self.obj_create(bundle, request=request)
            else:
                self.obj_create(bundle, request=request)

        response_data = {'points': self.dehydrate_points(bundle),
                         'badges': self.dehydrate_badges(bundle),
                         'scoring': self.dehydrate_scoring(bundle),
                         'badging': self.dehydrate_badging(bundle),
                         'metadata': self.dehydrate_metadata(bundle),
                         'course_points': self.dehydrate_course_points(bundle),
                         }
        response = HttpResponse(content=json.dumps(response_data), content_type="application/json; charset=utf-8")
        return response
Ejemplo n.º 3
0
    def patch_list(self, request, **kwargs):
        request = convert_post_to_patch(request)
        deserialized = self.deserialize(request, request.body,
                                        format=request.META.get('CONTENT_TYPE', 'application/json'))
        for data in deserialized["objects"]:
            data = self.alter_deserialized_detail_data(request, data)
            bundle = self.build_bundle(data=dict_strip_unicode_keys(data))
            bundle.request.user = request.user
            bundle.request.META['REMOTE_ADDR'] = request.META.get('REMOTE_ADDR', api.DEFAULT_IP_ADDRESS)
            bundle.request.META['HTTP_USER_AGENT'] = request.META.get('HTTP_USER_AGENT', 'unknown')
            # check UUID not already submitted
            if 'data' in bundle.data:
                json_data = json.loads(bundle.data['data'])
                if 'uuid' in json_data:
                    uuids = Tracker.objects.filter(uuid=json_data['uuid'])
                    if uuids.count() == 0:
                        self.obj_create(bundle, request=request)
                else:
                    self.obj_create(bundle, request=request)
            else:
                self.obj_create(bundle, request=request)

        response_data = {'points': self.dehydrate_points(bundle),
                         'badges': self.dehydrate_badges(bundle),
                         'scoring': self.dehydrate_scoring(bundle),
                         'badging': self.dehydrate_badging(bundle),
                         'metadata': self.dehydrate_metadata(bundle),
                         'course_points': self.dehydrate_course_points(bundle),
                         }
        response = HttpResponse(content=json.dumps(response_data), content_type="application/json; charset=utf-8")
        return response
Ejemplo n.º 4
0
 def patch_list(self,request,**kwargs):
     request = convert_post_to_patch(request)
     deserialized = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))
     for data in deserialized["objects"]:
         data = self.alter_deserialized_detail_data(request, data)
         bundle = self.build_bundle(data=dict_strip_unicode_keys(data))
         bundle.request.user = request.user
         bundle.request.META['REMOTE_ADDR'] = request.META.get('REMOTE_ADDR','0.0.0.0')
         bundle.request.META['HTTP_USER_AGENT'] = request.META.get('HTTP_USER_AGENT','unknown')
         self.obj_create(bundle, request=request)
     response_data = {'points': self.dehydrate_points(bundle),'badges':self.dehydrate_badges(bundle)}
     response = HttpResponse(content=json.dumps(response_data),content_type="application/json; charset=utf-8")
     return response
Ejemplo n.º 5
0
    def post_list(self, request, **kwargs):
        """
        Creates a new resource/object with the provided data.

        Calls ``obj_create`` with the provided data and returns a response
        with the new resource's location.

        If a new resource is created, return ``HttpCreated`` (201 Created).
        If ``Meta.always_return_data = True``, there will be a populated body
        of serialized data.
        """
        print 'postList'
        try:
            deserialized = self.deserialize(request,
                                            request.body,
                                            format=request.META.get(
                                                'CONTENT_TYPE',
                                                'application/json'))
        except RawPostDataException as e:

            print request
            deserialized = self.deserialize(request,
                                            request.raw_request_data,
                                            format=request.META.get(
                                                'CONTENT_TYPE',
                                                'application/json'))
            print e, type(e)

        deserialized = self.alter_deserialized_detail_data(
            request, deserialized)
        bundle = self.build_bundle(data=dict_strip_unicode_keys(deserialized),
                                   request=request)
        updated_bundle = self.obj_create(
            bundle, **self.remove_api_resource_names(kwargs))
        location = self.get_resource_uri(updated_bundle)

        if not self._meta.always_return_data:
            return http.HttpCreated(location=location)
        else:
            updated_bundle = self.full_dehydrate(updated_bundle)
            updated_bundle = self.alter_detail_data_to_serialize(
                request, updated_bundle)
            return self.create_response(request,
                                        updated_bundle,
                                        response_class=http.HttpCreated,
                                        location=location)
Ejemplo n.º 6
0
 def patch_list(self, request, **kwargs):
     request = convert_post_to_patch(request)
     deserialized = self.deserialize(
         request, request.body, format=request.META.get("CONTENT_TYPE", "application/json")
     )
     for data in deserialized["objects"]:
         data = self.alter_deserialized_detail_data(request, data)
         bundle = self.build_bundle(data=dict_strip_unicode_keys(data))
         bundle.request.user = request.user
         bundle.request.META["REMOTE_ADDR"] = request.META.get("REMOTE_ADDR", "0.0.0.0")
         bundle.request.META["HTTP_USER_AGENT"] = request.META.get("HTTP_USER_AGENT", "unknown")
         self.obj_create(bundle, request=request)
     response_data = {
         "points": self.dehydrate_points(bundle),
         "badges": self.dehydrate_badges(bundle),
         "scoring": self.dehydrate_scoring(bundle),
         "badging": self.dehydrate_badging(bundle),
         "metadata": self.dehydrate_metadata(bundle),
         "course_points": self.dehydrate_course_points(bundle),
     }
     response = HttpResponse(content=json.dumps(response_data), content_type="application/json; charset=utf-8")
     return response