logs-collector/logs_collector/collector/api/serializers.py

69 lines
1.8 KiB
Python
Raw Normal View History

2023-08-08 07:42:57 +02:00
from rest_framework import serializers
2023-08-11 19:32:31 +02:00
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.openapi import OpenApiTypes
from collector.models import Archive, Platform, Ticket
2023-08-08 07:42:57 +02:00
@extend_schema_field(OpenApiTypes.INT)
2023-08-11 03:38:47 +02:00
class TimestampField(serializers.Field):
2023-08-11 19:32:31 +02:00
def to_representation(self, value) -> int:
2023-08-11 03:38:47 +02:00
return value.timestamp()
@extend_schema_field(OpenApiTypes.INT)
2023-08-11 03:38:47 +02:00
class JsTimestampField(serializers.Field):
2023-08-11 19:32:31 +02:00
def to_representation(self, value) -> int:
2023-08-11 03:38:47 +02:00
return round(value.timestamp()*1000)
2023-08-08 07:42:57 +02:00
2023-08-11 03:38:47 +02:00
class PublicArchiveUploadSerializer(serializers.ModelSerializer):
2023-08-16 17:53:13 +02:00
2023-08-08 07:42:57 +02:00
class Meta:
model = Archive
fields = ['file', 'ticket']
2023-08-11 03:38:47 +02:00
class ArchiveSerializer(serializers.ModelSerializer):
time_create = serializers.DateTimeField(read_only=True)
2023-08-11 03:38:47 +02:00
class Meta:
model = Archive
fields = ['id', 'file', 'ticket', 'time_create']
class PlatformSerializer(serializers.ModelSerializer):
class Meta:
model = Platform
fields = ['id', 'name', 'pretty_name']
class TicketSerializer(serializers.ModelSerializer):
time_create = serializers.DateTimeField(read_only=True)
time_update = serializers.DateTimeField(read_only=True)
2023-08-11 03:38:47 +02:00
token = serializers.UUIDField(read_only=True)
user = serializers.ReadOnlyField(source='user.username')
class Meta:
model = Ticket
fields = [
'id',
'number',
'resolved',
'token',
'attempts',
'platform',
'time_create',
'time_update',
'user'
]
class StorageInfoSerializer(serializers.Serializer):
total = serializers.IntegerField(read_only=True)
used = serializers.IntegerField(read_only=True)
free = serializers.IntegerField(read_only=True)
used_percent = serializers.IntegerField(read_only=True)