Add /stats/ API route with defaults

master
Tanner Collin 4 years ago
parent 5d4ef292d6
commit f75b782afd
  1. 12
      apiserver/apiserver/api/utils_stats.py
  2. 12
      apiserver/apiserver/api/views.py
  3. 1
      apiserver/apiserver/urls.py

@ -0,0 +1,12 @@
import time
DEFAULTS = {
'last_card_change': time.time(),
'next_meeting': None,
'next_clean': None,
'member_count': None,
'due_members': None,
'old_members': None,
'bay_108_temp': None,
'bay_110_temp': None,
}

@ -16,7 +16,7 @@ import datetime
import requests
from . import models, serializers, utils, utils_paypal
from . import models, serializers, utils, utils_paypal, utils_stats
from .permissions import (
is_admin_director,
AllowMetadata,
@ -312,6 +312,16 @@ class IpnView(views.APIView):
class StatsView(views.APIView):
def get(self, request):
stats_keys = utils_stats.DEFAULTS.keys()
cached_stats = cache.get_many(stats_keys)
stats = utils_stats.DEFAULTS.copy()
stats.update(cached_stats)
return Response(stats)
class RegistrationView(RegisterView):
serializer_class = serializers.RegistrationSerializer

@ -30,5 +30,6 @@ urlpatterns = [
url(r'^password/change/', views.PasswordChangeView.as_view(), name='rest_password_change'),
url(r'^user/', views.UserView.as_view(), name='user'),
url(r'^ping/', views.PingView.as_view(), name='ping'),
url(r'^stats/', views.StatsView.as_view(), name='stats'),
url(IPN_ROUTE, views.IpnView.as_view(), name='ipn'),
]

Loading…
Cancel
Save