From 96ddc3e26e1dd55a25a7084f2eb1c60a7e052182 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Thu, 7 Sep 2023 15:06:38 -0400
Subject: [PATCH] feat: define and use JSON Schema for tags

---
 program/serializers.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/program/serializers.py b/program/serializers.py
index 11d72b42..e9adb681 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -21,6 +21,7 @@
 import re
 from typing import List, TypedDict
 
+from drf_jsonschema_serializer import JSONSchemaField
 from rest_framework import serializers
 
 from django.contrib.auth.models import User
@@ -806,6 +807,14 @@ class NoteLinkSerializer(serializers.ModelSerializer):
         fields = ("type", "url")
 
 
+tags_json_schema = {
+  "type": "array",
+  "items": {
+    "type": "string"
+  }
+}
+
+
 class NoteSerializer(serializers.ModelSerializer):
     contributor_ids = serializers.PrimaryKeyRelatedField(
         many=True, queryset=Host.objects.all(), source="contributors"
@@ -815,7 +824,7 @@ class NoteSerializer(serializers.ModelSerializer):
     )
     links = NoteLinkSerializer(many=True, required=False)
     playlist_id = serializers.IntegerField(required=False)
-    tags = serializers.JSONField(default=[], required=False)
+    tags = JSONSchemaField(tags_json_schema)
     timeslot_id = serializers.PrimaryKeyRelatedField(
         queryset=TimeSlot.objects.all(), required=False
     )
-- 
GitLab