def restaurant(req, restaurantId): """ Retrive, modify or delete single restaurant by id """ try: restaurant = Restaurant.objects.get(id=restaurantId) except Restaurant.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if req.method == 'GET': serializer = RestaurantDetailSerializer(restaurant) data = serializer.data RestaurantService.calculateRate(data) return Response(data) elif req.method == 'PUT': req.data['user'] = req.user.id serializer = RestaurantSerializer(restaurant, data=req.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif req.method == 'DELETE': restaurant.delete() return HttpResponse(status=status.HTTP_204_NO_CONTENT)
def restaurants(req): """ Get all restaurants, or create a new one """ if req.method == 'GET': restaurants = Restaurant.objects.all() serializer = RestaurantDetailSerializer(restaurants, many=True) data = serializer.data for restaurant in data: RestaurantService.calculateRate(restaurant) return Response(data) elif req.method == 'POST': req.data['user'] = req.user.id serializer = RestaurantSerializer(data=req.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)