Example #1
0
def filter(request):
    if 'salon_name' in request.data:
        salon_name = request.data.pop('salon_name')
        service_name = request.data.pop('service_name')
        salon = models.Salon.objects.none()
        service = models.Service.objects.none()
        try:
            salon = models.Salon.objects.get(name=salon_name)
            service = models.Service.objects.get(name=service_name)
        except Exception:
            return Response({}, status=status.HTTP_404_NOT_FOUND)

        master_services = salon.salon_master_services.filter(service=service)
        masters = []
        for ms in master_services:
            masters.append(ms.master)

        master_ser = serializers.MasterSerializer(masters, many=True)
        if masters and salon and master_ser:
            return Response(master_ser.data, status=status.HTTP_200_OK)
        return Response({}, status=status.HTTP_200_OK)
    elif 'time' in request.data:
        service_name = request.data.pop('service_name')
        time = request.data.pop('time')
        date = request.data.pop('date')
        service = models.Service.objects.none()
        try:
            service = models.Service.objects.get(name=service_name)
        except Exception:
            return Response({}, status=status.HTTP_404_NOT_FOUND)

        master_services = service.master_services.all()
        print(master_services)
        salons = []
        for ms in master_services:
            for order in ms.order_price.all():
                print(order)
                if order.date != date and order.time != time:
                    salons.append(ms.salon)

        salons = set(salons)
        salon_ser = serializers.SalonSerializer(salons, many=True)
        if service and salons and salon_ser:
            return Response(salon_ser.data, status=status.HTTP_200_OK)
        return Response({}, status=status.HTTP_404_NOT_FOUND)
    elif 'master_name' in request.data:
        master_name = request.data.pop('master_name')
        masters = models.CustomUser.objects.get_masters(
            master_name=master_name)
        master_ser = serializers.MasterSerializer(masters, many=True)
        if masters:
            return Response(master_ser.data, status=status.HTTP_200_OK)
        return Response({}, status=status.HTTP_404_NOT_FOUND)
Example #2
0
 def post(self, request, *args, **kwargs):
     salon = models.Salon.objects.get(pk=self.kwargs[self.lookup_field])
     name = request.data.get('name')
     service = models.Service(salon=salon, name=name)
     if service:
         service.save()
         data = {'salon': serializers.SalonSerializer(salon)}
         serializer = serializers.ServiceSerializer(service)
         headers = self.get_success_headers(serializer.data)
         return Response(serializer.data,
                         status=status.HTTP_201_CREATED,
                         headers=headers)
     return Response({'error': 'Invalid data'},
                     status=status.HTTP_400_BAD_REQUEST)