From aa9045e49efb6bc9d26f7ccef856175aa81018c7 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Mon, 20 Jan 2020 06:01:10 +0000 Subject: [PATCH] Add door controller cards route to API --- apiserver/apiserver/api/views.py | 28 ++++++++++++++++++++++++++++ apiserver/apiserver/urls.py | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/apiserver/apiserver/api/views.py b/apiserver/apiserver/api/views.py index 2550270..b2335cf 100644 --- a/apiserver/apiserver/api/views.py +++ b/apiserver/apiserver/api/views.py @@ -249,6 +249,34 @@ class UserView(views.APIView): return Response(serializer.data) +class DoorViewSet(Base, List): + serializer_class = serializers.CardSerializer + + def list(self, request): + cards = models.Card.objects.filter(active_status='card_active') + active_member_cards = {} + + # format cards to match Emrah's conversion script, fix later + for card in cards: + member = get_object_or_404(models.Member, id=card.member_id) + if member.paused_date: continue + + active_member_cards[card.card_number] = dict( + name=member.first_name + ' ' + member.last_name[0], + id=member.id, + enabled=True, + ) + + return Response(active_member_cards) + + @action(detail=True, methods=['post']) + def seen(self, request, pk=None): + card = get_object_or_404(models.Card, card_number=pk) + card.last_seen_at = datetime.date.today() + card.save() + return Response(200) + + class RegistrationView(RegisterView): serializer_class = serializers.RegistrationSerializer diff --git a/apiserver/apiserver/urls.py b/apiserver/apiserver/urls.py index c4f3b75..9ab0d5d 100644 --- a/apiserver/apiserver/urls.py +++ b/apiserver/apiserver/urls.py @@ -6,7 +6,7 @@ from rest_framework import routers from .api import views router = routers.DefaultRouter() -#router.register(r'users', views.UserViewSet) +router.register(r'door', views.DoorViewSet, basename='door') router.register(r'cards', views.CardViewSet, basename='card') router.register(r'search', views.SearchViewSet, basename='search') router.register(r'members', views.MemberViewSet, basename='members')