Validate category creation requests, unit test (#15)

* Validate category creation requests, unit test

* unit tests
This commit is contained in:
Ethan Roseman
2022-08-27 02:34:59 -04:00
committed by GitHub
parent d5978edd29
commit 5d619698c4
9 changed files with 179 additions and 37 deletions

View File

@@ -0,0 +1,45 @@
from rest_framework import serializers
from frog_api.models import Entry, Measure, Project, Version
class VersionSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Version
fields = ["slug", "name"]
class ProjectSerializer(serializers.HyperlinkedModelSerializer):
versions = VersionSerializer(many=True)
class Meta:
model = Project
fields = [
"slug",
"name",
"versions",
"repository",
"discord",
"website",
]
class MeasureSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Measure
fields = ["type", "value"]
class EntrySerializer(serializers.HyperlinkedModelSerializer):
measures = serializers.SerializerMethodField()
def get_measures(self, instance: Entry) -> dict[str, int]:
return {m.type: m.value for m in instance.measures.all()}
class Meta:
model = Entry
fields = [
"timestamp",
"git_hash",
"measures",
]

View File

@@ -0,0 +1,14 @@
from rest_framework import serializers
from frog_api.models import AUTH_KEY_LEN
class ApiKeySerializer(serializers.CharField):
required = True
max_length = AUTH_KEY_LEN
class CreateCategoriesSerializer(serializers.Serializer): # type:ignore
api_key = ApiKeySerializer()
categories = serializers.DictField(
required=True, allow_empty=False, child=serializers.CharField()
)