Refactor rate-limit endpoint to use serializers
This commit is contained in:
parent
b3f31aeea2
commit
570524a2bd
|
@ -335,3 +335,27 @@ class NullToEmptDict(object):
|
||||||
if not v:
|
if not v:
|
||||||
return v
|
return v
|
||||||
return super().to_representation(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())
|
||||||
|
|
|
@ -139,6 +139,7 @@ class MutationViewSet(
|
||||||
class RateLimitView(views.APIView):
|
class RateLimitView(views.APIView):
|
||||||
permission_classes = []
|
permission_classes = []
|
||||||
throttle_classes = []
|
throttle_classes = []
|
||||||
|
serializer_class = serializers.RateLimitSerializer
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
ident = throttling.get_ident(getattr(request, "user", None), request)
|
ident = throttling.get_ident(getattr(request, "user", None), request)
|
||||||
|
@ -147,7 +148,7 @@ class RateLimitView(views.APIView):
|
||||||
"ident": ident,
|
"ident": ident,
|
||||||
"scopes": throttling.get_status(ident, time.time()),
|
"scopes": throttling.get_status(ident, time.time()),
|
||||||
}
|
}
|
||||||
return response.Response(data, status=200)
|
return response.Response(serializers.RateLimitSerializer(data).data, status=200)
|
||||||
|
|
||||||
|
|
||||||
class AttachmentViewSet(
|
class AttachmentViewSet(
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Added proper serializers for the rate-limit endpoint.
|
Loading…
Reference in New Issue