api: allow empty guardian_external_id parameter (#66332)
This commit is contained in:
parent
9842b071c8
commit
2e9fe5b794
|
@ -321,7 +321,7 @@ class AgendaOrSubscribedSlugsMixin(AgendaSlugsMixin):
|
|||
required=False, child=serializers.SlugField(max_length=160, allow_blank=False)
|
||||
)
|
||||
user_external_id = serializers.CharField(required=False, max_length=250, allow_blank=False)
|
||||
guardian_external_id = serializers.CharField(required=False, max_length=250, allow_blank=False)
|
||||
guardian_external_id = serializers.CharField(required=False, max_length=250, allow_blank=True)
|
||||
|
||||
def validate(self, attrs):
|
||||
super().validate(attrs)
|
||||
|
@ -334,7 +334,7 @@ class AgendaOrSubscribedSlugsMixin(AgendaSlugsMixin):
|
|||
raise ValidationError(
|
||||
{'user_external_id': _('This field is required when using "subscribed" parameter.')}
|
||||
)
|
||||
if 'guardian_external_id' in attrs and not user_external_id:
|
||||
if attrs.get('guardian_external_id') and not user_external_id:
|
||||
raise serializers.ValidationError(
|
||||
{'user_external_id': _('This field is required when using "guardian_external_id" parameter.')}
|
||||
)
|
||||
|
@ -365,9 +365,7 @@ class AgendaOrSubscribedSlugsMixin(AgendaSlugsMixin):
|
|||
|
||||
class MultipleAgendasDatetimesSerializer(AgendaOrSubscribedSlugsMixin, DatetimesSerializer):
|
||||
show_past_events = serializers.BooleanField(default=False)
|
||||
guardian_external_id = serializers.CharField(max_length=250, required=False)
|
||||
with_status = serializers.BooleanField(default=False)
|
||||
guardian_external_id = serializers.CharField(max_length=250, required=False)
|
||||
check_overlaps = serializers.BooleanField(default=False)
|
||||
|
||||
def validate(self, attrs):
|
||||
|
|
|
@ -712,6 +712,13 @@ def test_datetimes_multiple_agendas_shared_custody(app):
|
|||
resp = app.get('/api/agendas/datetimes/', params={'subscribed': 'all', 'user_external_id': 'child_id'})
|
||||
assert len(resp.json['data']) == 2
|
||||
|
||||
# empty guardian_external_id parameter is ignored
|
||||
resp = app.get(
|
||||
'/api/agendas/datetimes/?guardian_external_id=',
|
||||
params={'subscribed': 'all', 'user_external_id': 'child_id'},
|
||||
)
|
||||
assert len(resp.json['data']) == 2
|
||||
|
||||
# add shared custody agenda
|
||||
father = Person.objects.create(user_external_id='father_id', first_name='John', last_name='Doe')
|
||||
mother = Person.objects.create(user_external_id='mother_id', first_name='Jane', last_name='Doe')
|
||||
|
|
Loading…
Reference in New Issue