device validation by serial - DeviceException
This commit is contained in:
@@ -3,6 +3,7 @@ from rest_framework.serializers import ModelSerializer
|
||||
from apps.authentication.api.v1.serializers.serializer import BankAccountSerializer
|
||||
from apps.pos_device import exceptions as pos_exceptions
|
||||
from apps.pos_device import models as pos_models
|
||||
from apps.pos_device.exceptions import DeviceException
|
||||
from apps.pos_device.web.api.v1.serilaizers import client as client_serializer
|
||||
from apps.product.web.api.v1.serializers.quota_distribution_serializers import QuotaDistributionSerializer
|
||||
|
||||
@@ -18,6 +19,19 @@ class DeviceSerializer(ModelSerializer):
|
||||
model = pos_models.Device
|
||||
fields = '__all__'
|
||||
|
||||
def validate(self, attrs):
|
||||
serial = attrs['serial']
|
||||
|
||||
if not self.instance:
|
||||
if self.Meta.model.objects.filter(serial=serial).exists():
|
||||
raise DeviceException("دستگاه یا این شماره سریال از قبل ثبت شده است.", status_code=403) # noqa
|
||||
|
||||
if self.instance:
|
||||
if serial != self.instance.serial and self.Meta.model.objects.filter(serial=serial).exists():
|
||||
raise DeviceException("دستگاهی با این شماره سریال وجود دارد.", status_code=403) # noqa
|
||||
|
||||
return attrs
|
||||
|
||||
def to_representation(self, instance):
|
||||
""" custom output of serializer """
|
||||
representation = super().to_representation(instance)
|
||||
|
||||
Reference in New Issue
Block a user