Refactor rate-limit endpoint to use serializers

environments/review-front-deve-otr6gc/deployments/13419
Ciarán Ainsworth 2022-08-14 18:20:28 +00:00 zatwierdzone przez Georg Krause
rodzic b3f31aeea2
commit 570524a2bd
3 zmienionych plików z 27 dodań i 1 usunięć

Wyświetl plik

@ -335,3 +335,27 @@ class NullToEmptDict(object):
if not v:
return v
return super().to_representation(v)
class ScopesSerializer(serializers.Serializer):
id = serializers.CharField()
rate = serializers.CharField()
description = serializers.CharField()
limit = serializers.IntegerField()
duration = serializers.IntegerField()
remaining = serializers.IntegerField()
available = serializers.IntegerField()
available_seconds = serializers.IntegerField()
reset = serializers.IntegerField()
reset_seconds = serializers.IntegerField()
class IdentSerializer(serializers.Serializer):
type = serializers.CharField()
id = serializers.IntegerField()
class RateLimitSerializer(serializers.Serializer):
enabled = serializers.BooleanField()
ident = IdentSerializer()
scopes = serializers.ListField(child=ScopesSerializer())

Wyświetl plik

@ -139,6 +139,7 @@ class MutationViewSet(
class RateLimitView(views.APIView):
permission_classes = []
throttle_classes = []
serializer_class = serializers.RateLimitSerializer
def get(self, request, *args, **kwargs):
ident = throttling.get_ident(getattr(request, "user", None), request)
@ -147,7 +148,7 @@ class RateLimitView(views.APIView):
"ident": ident,
"scopes": throttling.get_status(ident, time.time()),
}
return response.Response(data, status=200)
return response.Response(serializers.RateLimitSerializer(data).data, status=200)
class AttachmentViewSet(

Wyświetl plik

@ -0,0 +1 @@
Added proper serializers for the rate-limit endpoint.