def post(self, request, format=None): """ Method used to create a new ImageItem object. The object data is provided in a serialized format. @param request: HttpRequest used to provide item data. @type request: HttpRequest @param format: The format used for object serialization. @type format: string @return: HttpResponse containing the id of the new ImageItem object, error otherwise. @rtype: HttpResponse """ request.data['owner'] = request.user.id serializer = ImageItemSerializer(data=request.data) if request.FILES and request.FILES['file'].content_type.split('/')[0] != 'image' : logger.error('Error on ImageItem creation: format not supported') return Response('Content type not supported', status=status.HTTP_400_BAD_REQUEST) if serializer.is_valid(): serializer.save() logger.debug('Created a new ImageItem object') return Response(serializer.data, status=status.HTTP_201_CREATED) logger.error('Error on ImageItem creation') return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, pk, format=None): """ Method used to update an ImageItem object data, providing all fresh data in a serialized form. @param request: HttpRequest containing the updated ImageItem field data. @type request: HttpRequest @param pk: ImageItem primary key, used to retrieve object data. @type pk: int @param format: Format used for data serialization. @type format: string @return: HttpResponse @rtype: HttpResponse """ with edit_lock: item = self.get_object(pk,request.user) serializer = ImageItemSerializer(item, data=request.data, partial=True) if serializer.is_valid(): serializer.save() logger.debug('Updated data on ImageItem with id ' + str(pk)) return Response(serializer.data) logger.error('Error on update of ImageItem with id ' + str(pk)) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)