diff --git a/t22.py b/t22.py new file mode 100644 index 0000000..e180bed --- /dev/null +++ b/t22.py @@ -0,0 +1,23 @@ +from rest_framework.response import Response +from rest_framework.viewsets import ViewSet + +from common_utils.api.permissions import IsAccountContext + +from metrics.cache import MetricsCache +from metrics.services import calculate_metrics + + +class MetricsViewSet(ViewSet): + schema_tag = 'Metrics' + permission_classes = (IsAccountContext,) + + def list(self, request, *args, **kwargs): + account = self.request.auth.account + cached_response = MetricsCache.get_metrics(account.id) + + if cached_response: + return Response(cached_response) + + data = calculate_metrics(account) + MetricsCache.set_metrics(account.id, data) + return Response(data)