|
|
|
@ -1,10 +1,11 @@ |
|
|
|
|
import requests |
|
|
|
|
import json |
|
|
|
|
|
|
|
|
|
from django.contrib.auth.models import User |
|
|
|
|
|
|
|
|
|
from rest_framework import mixins, permissions, status, viewsets |
|
|
|
|
from rest_framework.authtoken.models import Token |
|
|
|
|
from rest_framework.decorators import api_view |
|
|
|
|
from rest_framework.decorators import api_view, permission_classes |
|
|
|
|
from rest_framework.response import Response |
|
|
|
|
|
|
|
|
|
from . import models, serializers |
|
|
|
@ -74,3 +75,26 @@ def login(request): |
|
|
|
|
token, _ = Token.objects.get_or_create(user=user) |
|
|
|
|
|
|
|
|
|
return Response({'token': token.key}, status=status.HTTP_200_OK) |
|
|
|
|
|
|
|
|
|
@api_view(["PUT"]) |
|
|
|
|
@permission_classes((IsLockoutAdmin,)) |
|
|
|
|
def update_cards(request): |
|
|
|
|
data = request.data |
|
|
|
|
updated_count = 0 |
|
|
|
|
|
|
|
|
|
if not data: |
|
|
|
|
return Response({'error': 'Please provide card data in the form username=cardnumber'}, |
|
|
|
|
status=status.HTTP_400_BAD_REQUEST) |
|
|
|
|
|
|
|
|
|
for username, card_number in data.items(): |
|
|
|
|
try: |
|
|
|
|
profile = models.Profile.objects.get(user__username=username) |
|
|
|
|
card, _ = models.Card.objects.update_or_create( |
|
|
|
|
profile=profile, |
|
|
|
|
defaults={'number': card_number} |
|
|
|
|
) |
|
|
|
|
if card: updated_count += 1 |
|
|
|
|
except: |
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
return Response({'updated': updated_count}, status=status.HTTP_200_OK) |
|
|
|
|