def get(self, request, *args, **kwargs): permissions = ['product.view_commodityforstate'] if utils.check_permission(request=self.request, permissions=permissions): get_parameter = self.request.query_params.get('state') if get_parameter: try: commodity_state_list = models.CommodityForState.objects.filter(state_id=get_parameter) data = [] for commodity_state in commodity_state_list: data.append({ 'id': commodity_state.pk, 'metal': commodity_state.metal.name, 'metal_category': commodity_state.metal_category.name, 'purity': [purity.name for purity in commodity_state.metal_purity.all()], 'is_active': commodity_state.is_active }) except Exception as e: raise ValidationError(detail=e) else: state_id_list = models.CommodityForState.objects.values('state_id').distinct() state_queryset = models.State.objects.filter(id__in=state_id_list).order_by('state_name') data = [] for state in state_queryset: data.append( { "id": state.pk, "state": state.state_name } ) if not data: raise ValidationError(detail={'details': "Wrongly Queried."}) return Response(data=data, status=status.HTTP_201_CREATED)
def get(self, request, *args, **kwargs): permissions = ['product.view_markettime'] if utils.check_permission(request=self.request, permissions=permissions): queryset = models.MarketTime.objects.all() print(queryset) serailizer = serializers.MarketTimeSerailizer(queryset, many=True) return Response(serailizer.data, status=status.HTTP_201_CREATED)
def post(self, request, *args, **kwargs): permissions = ['product.add_deliverytime'] if utils.check_permission(request=self.request, permissions=permissions): serializer = serializers.DeliveryTypeSerailizer(data=request.data) if serializer.is_valid(raise_exception=True): serializer.save() return Response({"message": "Delivery Time Added Successfully"}, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): permissions = ['product.add_markettime'] if utils.check_permission(request=self.request, permissions=permissions): serializer = serializers.MarketTimeSerailizer(data=request.data) if len(models.MarketTime.objects.all()) < 1: if serializer.is_valid(raise_exception=True): serializer.save() return Response({"message": "Market Time Added Successfully"}, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response({'message': 'Already Exsists'}, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): permissions = ['product.add_state', 'product.add_city'] if utils.check_permission(request=request, permissions=permissions): serializer = serializers.AddStateCitySerailizer(data=request.data) if serializer.is_valid(raise_exception=True): city1 = models.City.objects.get_or_create(city_name=serializer.validated_data['city']) state1 = models.State.objects.get_or_create(state_name=serializer.validated_data['state']) state1[0].city.add(city1[0]) print(state1, city1) return Response({"message": "State Added"}) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, *args, **kwargs): permissions = ['product.change_metal'] if utils.check_permission(request=self.request, permissions=permissions): get_parameter = self.request.query_params if get_parameter.get('id'): try: queryset = models.Metal.objects.get(pk=int(get_parameter.get('id'))) serailizer = serializers.MetalSerailizer(queryset, data=request.data) if serailizer.is_valid(raise_exception=True): serailizer.save() return Response({'message': "Metal Updated Sucessfully"}, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response({"message": "Doesn't Exist"}, status=status.HTTP_400_BAD_REQUEST) return Response({"message": "Enter the id to update the metal"}, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): if not ((request.user.is_admin and request.user.is_verified) or request.user.is_superuser): raise ValidationError(detail={'detail': 'You are not Authorized to do any changes'}) permissions = ['product.add_commodityforstate'] if utils.check_permission(request=self.request, permissions=permissions): serializer = serializers.CommoditiesForStateSerializer(data=self.request.data) if serializer.is_valid(raise_exception=True): try: serializer.save() return Response( {"message": "Commdities Realted to Stated Added Sucessfully"}, status=status.HTTP_201_CREATED) except Exception as e: raise ValidationError(detail={'message': e}) return Response(serializer.errors['Exception Value'], status=status.HTTP_400_BAD_REQUEST)
def put(self, request, *args, **kwargs): permission_classes = [user_permission.IsSuperAdminOrAdmin, user_permission.IsVerified] permissions = ['product.change_commodityforstate'] if utils.check_permission(request=self.request, permissions=permissions): get_parameter = self.request.query_params if get_parameter.get('id'): try: queryset = models.CommodityForState.objects.get(pk=int(get_parameter.get('id'))) print(queryset) serailizer = serializers.CommoditiesForStateSerializer(queryset, data=self.request.data) if serailizer.is_valid(raise_exception=True): serailizer.save() return Response( {'message': "Commodity for State Updated Sucessfully"}, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) except Exception as e: raise ValidationError(detail={'message': e}) return Response( {"message": "Enter the id to update the Commodity for State"}, status=status.HTTP_400_BAD_REQUEST)