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
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
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
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
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)
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