mirror of
https://github.com/decompals/frogress.git
synced 2025-12-20 18:29:11 +00:00
Validate category creation requests, unit test (#15)
* Validate category creation requests, unit test * unit tests
This commit is contained in:
45
frog_api/serializers/model_serializers.py
Normal file
45
frog_api/serializers/model_serializers.py
Normal 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",
|
||||
]
|
||||
14
frog_api/serializers/request_serializers.py
Normal file
14
frog_api/serializers/request_serializers.py
Normal 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()
|
||||
)
|
||||
Reference in New Issue
Block a user