diff --git a/apiserver/apiserver/api/utils_stats.py b/apiserver/apiserver/api/utils_stats.py new file mode 100644 index 0000000..6192091 --- /dev/null +++ b/apiserver/apiserver/api/utils_stats.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, +} diff --git a/apiserver/apiserver/api/views.py b/apiserver/apiserver/api/views.py index a40e8af..789597c 100644 --- a/apiserver/apiserver/api/views.py +++ b/apiserver/apiserver/api/views.py @@ -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 diff --git a/apiserver/apiserver/urls.py b/apiserver/apiserver/urls.py index 89ad96b..007a96c 100644 --- a/apiserver/apiserver/urls.py +++ b/apiserver/apiserver/urls.py @@ -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'), ]