def apply(self, request): """ Apply Agent Apply Agent """ serializer = AgentApplySerializer(data=request.data) if serializer.is_valid(raise_exception=True): agent_type = serializer.validated_data.get("type") capacity = serializer.validated_data.get("capacity") if request.user.organization is None: raise CustomError(detail="Need join in organization") agent_count = Agent.objects.filter( organization=request.user.organization).count() if agent_count > 0: raise CustomError(detail="Already applied agent.") agents = Agent.objects.filter( organization__isnull=True, type=agent_type, capacity__gte=capacity, schedulable=True, ).order_by("capacity") if len(agents) == 0: raise NoResource agent = agents[0] agent.organization = request.user.organization agent.save() response = AgentIDSerializer(data=agent.__dict__) if response.is_valid(raise_exception=True): return Response(response.validated_data, status=status.HTTP_200_OK)
def apply(self, request): """ Apply Agent Apply Agent """ serializer = AgentApplySerializer(data=request.data) if serializer.is_valid(raise_exception=True): agent_type = serializer.validated_data.get("type") capacity = serializer.validated_data.get("capacity") if request.user.organization is None: raise CustomError(detail="Need join in organization") agent_count = Agent.objects.filter( organization=request.user.organization ).count() if agent_count > 0: raise CustomError(detail="Already applied agent.") agents = Agent.objects.filter( organization__isnull=True, type=agent_type, capacity__gte=capacity, schedulable=True, ).order_by("capacity") if len(agents) == 0: raise NoResource agent = agents[0] agent.organization = request.user.organization agent.save() response = AgentIDSerializer(data=agent.__dict__) if response.is_valid(raise_exception=True): return Response( response.validated_data, status=status.HTTP_200_OK )