From dbe58672ed8715632aea5e34734a18c287bcb576 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 20 Mar 2025 21:53:58 -0700 Subject: [PATCH] limit matching options in serializer [ci skip] --- src/documents/serialisers.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index 44a764a4f..5c0a62f32 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -670,6 +670,19 @@ class CustomFieldSerializer(MatchingModelSerializer, serializers.ModelSerializer raise serializers.ValidationError( {"error": "extra_data.default_currency must be a 3-character string"}, ) + if ( + "matching_algorithm" in attrs + and attrs["matching_algorithm"] != CustomField.MATCH_REGEX + and "data_type" in attrs + and attrs["data_type"] + not in [ + CustomField.FieldDataType.SELECT, + CustomField.FieldDataType.BOOL, + ] + ): + raise serializers.ValidationError( + {"error": "Only discrete data types support matching"}, + ) return super().validate(attrs) def to_internal_value(self, data):