From 0f826015f7b4f98ce3922a1512933d4bf3b1d038 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sun, 26 Jul 2020 00:04:07 +0000 Subject: [PATCH] Add stats endpoint for tracking computer logins --- apiserver/apiserver/api/utils_stats.py | 1 + apiserver/apiserver/api/views.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/apiserver/apiserver/api/utils_stats.py b/apiserver/apiserver/api/utils_stats.py index 19290cb..fff9baf 100644 --- a/apiserver/apiserver/api/utils_stats.py +++ b/apiserver/apiserver/api/utils_stats.py @@ -23,6 +23,7 @@ DEFAULTS = { 'bay_110_temp': None, 'minecraft_players': [], 'card_scans': 0, + 'track': {}, } def changed_card(): diff --git a/apiserver/apiserver/api/views.py b/apiserver/apiserver/api/views.py index 17579fe..0ea8431 100644 --- a/apiserver/apiserver/api/views.py +++ b/apiserver/apiserver/api/views.py @@ -16,7 +16,7 @@ from rest_auth.views import PasswordChangeView, PasswordResetView, PasswordReset from rest_auth.registration.views import RegisterView from fuzzywuzzy import fuzz, process from collections import OrderedDict -import datetime +import datetime, time import requests @@ -421,6 +421,16 @@ class StatsViewSet(viewsets.ViewSet, List): except KeyError: raise exceptions.ValidationError(dict(data='This field is required.')) + @action(detail=False, methods=['post']) + def track(self, request): + if 'name' in request.data: + track = cache.get('track', {}) + track[request.data['name']] = time.time() + cache.set('track', track) + return Response(200) + else: + raise exceptions.ValidationError(dict(paste='This field is required.')) + class MemberCountViewSet(Base, List): pagination_class = None