def put(self, request, *args, **kwargs): event_id = self.kwargs['id'] try: event = Events.objects.get(_id=event_id) except Events.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) serializer = EventsSerializer(event, data=request.data) serializer.is_valid(raise_exception=True) serializer.save() return Response(status=status.HTTP_200_OK)
def post(request): request.data[ '_id'] = request.user.username + "_" + request.data['id_event'] serializer = RatingsSerializer(data=request.data) serializer.is_valid(raise_exception=True) if serializer.save(): ratings = RatingsSerializer( Ratings.objects.filter(id_event=serializer.data['id_event']), many=True) number_of_ratings = len(ratings.data) event = EventsSerializer( Events.objects.get( _id=serializer.data['id_event'])).data.copy() if event['ratings'] is None: event['ratings'] = serializer.data["rate"] else: event['ratings'] = (event['ratings'] + serializer.data["rate"] ) / number_of_ratings eserializer = EventsSerializer(data=event) eserializer.is_valid(raise_exception=True) if eserializer.save(): reservation = ReservationsSerializer( Reservations.objects.get( _id=request.data['id_event'] + "_" + str(request.user.id))).data.copy() reservation['id_review'] = serializer.data["_id"] rserializer = ReservationsSerializer(data=reservation) rserializer.is_valid(raise_exception=True) rserializer.save() return Response(data=serializer.data, status=status.HTTP_201_CREATED)
def put(self, request, *args, **kwargs): rating_id = self.kwargs['id'] try: rating = Ratings.objects.get(_id=rating_id) except Events.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) number_of_ratings = len( RatingsSerializer(Ratings.objects.filter(id_event=rating.id_event), many=True).data) event = EventsSerializer( Events.objects.get(_id=rating.id_event)).data.copy() event['ratings'] -= rating.rate event['ratings'] = (event['ratings'] + request.data["rate"]) / number_of_ratings eserializer = EventsSerializer(data=event) eserializer.is_valid(raise_exception=True) eserializer.save() serializer = RatingsSerializer(rating, data=request.data) serializer.is_valid(raise_exception=True) serializer.save() return Response(status=status.HTTP_200_OK)
def create(self, request): serializer = EventsSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def save_matrix(event_id, matrix): event = Events.objects.get(_id=event_id) data = {"seats": matrix_to_string(matrix)} serializer = EventsSerializer(event, data=data, partial=True) serializer.is_valid(raise_exception=True) serializer.save()
def post(request): request.data['seats'] = matrix_to_string(create_matrix(request.data["id_room"])) serializer = EventsSerializer(data=request.data) serializer.is_valid(raise_exception=True) serializer.save() return Response(data=serializer.data, status=status.HTTP_201_CREATED)