logs-collector/logs_collector/collector/serializers.py

60 lines
1.5 KiB
Python
Raw Normal View History

2023-08-08 13:42:57 +08:00
from rest_framework import serializers
2023-08-11 09:38:47 +08:00
from .models import Archive, Platform, Ticket
2023-08-08 13:42:57 +08:00
2023-08-11 09:38:47 +08:00
class TimestampField(serializers.Field):
def to_representation(self, value):
return value.timestamp()
class JsTimestampField(serializers.Field):
def to_representation(self, value):
return round(value.timestamp()*1000)
2023-08-08 13:42:57 +08:00
2023-08-11 09:38:47 +08:00
class PublicArchiveUploadSerializer(serializers.ModelSerializer):
2023-08-08 13:42:57 +08:00
class Meta:
model = Archive
fields = ['file', 'ticket']
2023-08-11 09:38:47 +08:00
class ArchiveSerializer(serializers.ModelSerializer):
time_create = JsTimestampField(read_only=True)
class Meta:
model = Archive
fields = ['id', 'file', 'ticket', 'time_create']
def to_representation(self, instance):
print(int(round(instance.time_create.timestamp())))
return super().to_representation(instance)
class PlatformSerializer(serializers.ModelSerializer):
class Meta:
model = Platform
fields = ['id', 'name', 'pretty_name']
class TicketSerializer(serializers.ModelSerializer):
time_create = JsTimestampField(read_only=True)
time_update = JsTimestampField(read_only=True)
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'
]