Skip to content
Snippets Groups Projects
Verified Commit 96ddc3e2 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

feat: define and use JSON Schema for tags

parent e32adc72
No related branches found
No related tags found
No related merge requests found
Pipeline #5678 passed
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
import re import re
from typing import List, TypedDict from typing import List, TypedDict
from drf_jsonschema_serializer import JSONSchemaField
from rest_framework import serializers from rest_framework import serializers
from django.contrib.auth.models import User from django.contrib.auth.models import User
...@@ -806,6 +807,14 @@ class NoteLinkSerializer(serializers.ModelSerializer): ...@@ -806,6 +807,14 @@ class NoteLinkSerializer(serializers.ModelSerializer):
fields = ("type", "url") fields = ("type", "url")
tags_json_schema = {
"type": "array",
"items": {
"type": "string"
}
}
class NoteSerializer(serializers.ModelSerializer): class NoteSerializer(serializers.ModelSerializer):
contributor_ids = serializers.PrimaryKeyRelatedField( contributor_ids = serializers.PrimaryKeyRelatedField(
many=True, queryset=Host.objects.all(), source="contributors" many=True, queryset=Host.objects.all(), source="contributors"
...@@ -815,7 +824,7 @@ class NoteSerializer(serializers.ModelSerializer): ...@@ -815,7 +824,7 @@ class NoteSerializer(serializers.ModelSerializer):
) )
links = NoteLinkSerializer(many=True, required=False) links = NoteLinkSerializer(many=True, required=False)
playlist_id = serializers.IntegerField(required=False) playlist_id = serializers.IntegerField(required=False)
tags = serializers.JSONField(default=[], required=False) tags = JSONSchemaField(tags_json_schema)
timeslot_id = serializers.PrimaryKeyRelatedField( timeslot_id = serializers.PrimaryKeyRelatedField(
queryset=TimeSlot.objects.all(), required=False queryset=TimeSlot.objects.all(), required=False
) )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment