def ingredient(req, ingredientId): """ Retrive, modify or delete single ingredient by id """ try: ingredient = Ingredient.objects.get(id=ingredientId) except Ingredient.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if req.method == 'GET': serializer = IngredientSerializer(ingredient) return Response(serializer.data) elif req.method == 'PUT': serializer = IngredientSerializer(ingredient, 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': ingredient.delete() return HttpResponse(status=status.HTTP_204_NO_CONTENT)
def ingredients(req): """ Get all ingredients, or create a new one """ if req.method == 'GET': ingredients = Ingredient.objects.all() serializer = IngredientSerializer(ingredients, many=True) return Response(serializer.data) elif req.method == 'POST': serializer = IngredientSerializer(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)