2024-07-25 19:12:59 +03:00
|
|
|
''' Basic serializers that do not interact with database. '''
|
|
|
|
from rest_framework import serializers
|
|
|
|
|
|
|
|
from shared import messages as msg
|
|
|
|
|
|
|
|
from ..models import AccessPolicy, validate_location
|
|
|
|
|
|
|
|
|
|
|
|
class LocationSerializer(serializers.Serializer):
|
|
|
|
''' Serializer: Item location. '''
|
|
|
|
location = serializers.CharField(max_length=500)
|
|
|
|
|
|
|
|
def validate(self, attrs):
|
|
|
|
attrs = super().validate(attrs)
|
|
|
|
if not validate_location(attrs['location']):
|
|
|
|
raise serializers.ValidationError({
|
|
|
|
'location': msg.invalidLocation()
|
|
|
|
})
|
|
|
|
return attrs
|
|
|
|
|
|
|
|
|
2024-08-21 16:49:17 +03:00
|
|
|
class RenameLocationSerializer(serializers.Serializer):
|
|
|
|
''' Serializer: rename location. '''
|
|
|
|
target = serializers.CharField(max_length=500)
|
|
|
|
new_location = serializers.CharField(max_length=500)
|
|
|
|
|
|
|
|
def validate(self, attrs):
|
|
|
|
attrs = super().validate(attrs)
|
|
|
|
if not validate_location(attrs['target']):
|
|
|
|
raise serializers.ValidationError({
|
|
|
|
'target': msg.invalidLocation()
|
|
|
|
})
|
|
|
|
if not validate_location(attrs['target']):
|
|
|
|
raise serializers.ValidationError({
|
|
|
|
'new_location': msg.invalidLocation()
|
|
|
|
})
|
|
|
|
return attrs
|
|
|
|
|
|
|
|
|
2024-07-25 19:12:59 +03:00
|
|
|
class AccessPolicySerializer(serializers.Serializer):
|
|
|
|
''' Serializer: Constituenta renaming. '''
|
|
|
|
access_policy = serializers.CharField()
|
|
|
|
|
|
|
|
def validate(self, attrs):
|
|
|
|
attrs = super().validate(attrs)
|
|
|
|
if not attrs['access_policy'] in AccessPolicy.values:
|
|
|
|
raise serializers.ValidationError({
|
|
|
|
'access_policy': msg.invalidEnum(attrs['access_policy'])
|
|
|
|
})
|
|
|
|
return attrs
|