sync from local backup
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
from rest_framework import serializers
|
||||
from .models import ApiRequestLog, ErrorLog, SystemEventLog
|
||||
|
||||
|
||||
class ApiRequestLogSerializer(serializers.ModelSerializer):
|
||||
username = serializers.CharField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = ApiRequestLog
|
||||
fields = [
|
||||
'id', 'timestamp', 'user', 'username', 'ip_address', 'user_agent',
|
||||
'method', 'path', 'query_string', 'request_body', 'status_code',
|
||||
'response_size', 'duration_ms', 'app_name', 'is_error',
|
||||
]
|
||||
read_only_fields = fields
|
||||
|
||||
|
||||
class ApiRequestLogListSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ApiRequestLog
|
||||
fields = [
|
||||
'id', 'timestamp', 'username', 'ip_address', 'method', 'path',
|
||||
'status_code', 'duration_ms', 'app_name', 'is_error',
|
||||
]
|
||||
read_only_fields = fields
|
||||
|
||||
|
||||
class ErrorLogSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ErrorLog
|
||||
fields = [
|
||||
'id', 'timestamp', 'level', 'message', 'module', 'function',
|
||||
'line_number', 'exception_type', 'traceback', 'user', 'ip_address',
|
||||
'path', 'request_data', 'is_resolved', 'resolved_at',
|
||||
'hash_key', 'occurrence_count',
|
||||
]
|
||||
read_only_fields = [
|
||||
'id', 'timestamp', 'level', 'message', 'module', 'function',
|
||||
'line_number', 'exception_type', 'traceback', 'user', 'ip_address',
|
||||
'path', 'request_data', 'hash_key', 'occurrence_count',
|
||||
]
|
||||
|
||||
|
||||
class ErrorLogListSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ErrorLog
|
||||
fields = [
|
||||
'id', 'timestamp', 'level', 'message', 'module', 'exception_type',
|
||||
'is_resolved', 'occurrence_count',
|
||||
]
|
||||
read_only_fields = fields
|
||||
|
||||
|
||||
class ErrorLogResolveSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ErrorLog
|
||||
fields = ['is_resolved', 'resolved_at']
|
||||
|
||||
|
||||
class SystemEventLogSerializer(serializers.ModelSerializer):
|
||||
username = serializers.CharField(source='user.username', read_only=True)
|
||||
target_username = serializers.CharField(source='target_user.username', read_only=True, default=None)
|
||||
event_type_display = serializers.CharField(source='get_event_type_display', read_only=True)
|
||||
result_display = serializers.CharField(source='get_result_display', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = SystemEventLog
|
||||
fields = [
|
||||
'id', 'timestamp', 'event_type', 'event_type_display', 'user',
|
||||
'username', 'target_user', 'target_username', 'description',
|
||||
'metadata', 'ip_address', 'user_agent', 'result', 'result_display',
|
||||
]
|
||||
read_only_fields = fields
|
||||
|
||||
|
||||
class SystemEventLogListSerializer(serializers.ModelSerializer):
|
||||
username = serializers.CharField(source='user.username', read_only=True)
|
||||
event_type_display = serializers.CharField(source='get_event_type_display', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = SystemEventLog
|
||||
fields = [
|
||||
'id', 'timestamp', 'event_type', 'event_type_display', 'username',
|
||||
'description', 'result',
|
||||
]
|
||||
read_only_fields = fields
|
||||
|
||||
|
||||
class StatsSummarySerializer(serializers.Serializer):
|
||||
total_requests = serializers.IntegerField()
|
||||
total_errors = serializers.IntegerField()
|
||||
error_rate = serializers.FloatField()
|
||||
avg_duration_ms = serializers.FloatField()
|
||||
max_duration_ms = serializers.FloatField()
|
||||
unique_users = serializers.IntegerField()
|
||||
unique_ips = serializers.IntegerField()
|
||||
top_status_codes = serializers.ListField()
|
||||
error_count_today = serializers.IntegerField()
|
||||
request_count_today = serializers.IntegerField()
|
||||
|
||||
|
||||
class PathStatsSerializer(serializers.Serializer):
|
||||
path = serializers.CharField()
|
||||
request_count = serializers.IntegerField()
|
||||
error_count = serializers.IntegerField()
|
||||
error_rate = serializers.FloatField()
|
||||
avg_duration_ms = serializers.FloatField()
|
||||
|
||||
|
||||
class HourlyStatsSerializer(serializers.Serializer):
|
||||
hour = serializers.IntegerField()
|
||||
request_count = serializers.IntegerField()
|
||||
error_count = serializers.IntegerField()
|
||||
avg_duration_ms = serializers.FloatField()
|
||||
|
||||
|
||||
class ErrorTypeStatsSerializer(serializers.Serializer):
|
||||
exception_type = serializers.CharField()
|
||||
count = serializers.IntegerField()
|
||||
last_occurred = serializers.DateTimeField()
|
||||
module = serializers.CharField()
|
||||
Reference in New Issue
Block a user