Added /all/ and modified limits

This commit is contained in:
Benjamyn 2020-11-04 12:18:20 +11:00
parent b6b4e03890
commit 08cbbb7ba7

View File

@ -14,12 +14,19 @@ from .serializers import MigrationSerializer, MigrationOverView
from .models import Migration from .models import Migration
def checkLimit(limit):
if limit == "":
limit = None
else:
limit = int(limit)
return limit
class MigrationList(APIView): class MigrationList(APIView):
''' '''
Returns a list of migrations with simpleData Returns a list of migrations with simpleData
''' '''
def get(self, request, format=None): def get(self, request, format=None):
migrations = Migration.objects.all() limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.all()[:limit]
serializer = MigrationOverView(migrations, many=True) serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data) return Response(serializer.data)
@ -59,8 +66,9 @@ class MigrationsBooked(APIView):
Returns list of booked migrations Returns list of booked migrations
''' '''
def get(self, request, format=None): def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = MigrationOverView(Migration.objects.filter( migrations = MigrationOverView(Migration.objects.filter(
migration_status="Booked",), many=True) migration_status="Booked",)[:limit], many=True)
return Response(migrations.data, status=status.HTTP_200_OK) return Response(migrations.data, status=status.HTTP_200_OK)
class MigrationsWaitingTerm(APIView): class MigrationsWaitingTerm(APIView):
@ -68,8 +76,9 @@ class MigrationsWaitingTerm(APIView):
Returns list of booked migrations Returns list of booked migrations
''' '''
def get(self, request, format=None): def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = MigrationOverView(Migration.objects.filter( migrations = MigrationOverView(Migration.objects.filter(
migration_status="Waiting Termination",), many=True) migration_status="Waiting Termination",)[:limit], many=True)
return Response(migrations.data, status=status.HTTP_200_OK) return Response(migrations.data, status=status.HTTP_200_OK)
class MigrationsCompleted(APIView): class MigrationsCompleted(APIView):
@ -77,8 +86,9 @@ class MigrationsCompleted(APIView):
Returns list of booked migrations Returns list of booked migrations
''' '''
def get(self, request, format=None): def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = MigrationOverView(Migration.objects.filter( migrations = MigrationOverView(Migration.objects.filter(
migration_status="Completed",), many=True) migration_status="Completed",)[:limit], many=True)
return Response(migrations.data, status=status.HTTP_200_OK) return Response(migrations.data, status=status.HTTP_200_OK)
class PendingMigrations(APIView): class PendingMigrations(APIView):
@ -86,10 +96,11 @@ class PendingMigrations(APIView):
Returns list of 'pending' migrations (migrations that are booked for today (maybe before timezone.now)) Returns list of 'pending' migrations (migrations that are booked for today (maybe before timezone.now))
''' '''
def get(self, request, format=None): def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.filter( migrations = Migration.objects.filter(
migration_status="Booked", booked_time__lte=timezone.now() + datetime.timedelta(1), migration_status="Booked", booked_time__lte=timezone.now() + datetime.timedelta(1),
booked_time__gte=(timezone.now() + datetime.timedelta(-1)) booked_time__gte=(timezone.now() + datetime.timedelta(-1))
) )[:limit]
serializer = MigrationOverView(migrations, many=True) serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data, status=status.HTTP_200_OK) return Response(serializer.data, status=status.HTTP_200_OK)
@ -98,10 +109,11 @@ class MissedMigrations(APIView):
Returns a list of missed migrations Returns a list of missed migrations
''' '''
def get(self, request, format=None): def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.filter( migrations = Migration.objects.filter(
booked_time__lte=timezone.now() + datetime.timedelta(-1), booked_time__lte=timezone.now() + datetime.timedelta(-1),
migration_status="Booked" migration_status="Booked"
) )[:limit]
serializer = MigrationOverView(migrations, many=True) serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data) return Response(serializer.data)
@ -110,8 +122,16 @@ class PendingTerm(APIView):
Returns a list of accounts pending termination (might add an arg so we can specify how many days) Returns a list of accounts pending termination (might add an arg so we can specify how many days)
''' '''
def get(self, request, format=None): def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.filter( migrations = Migration.objects.filter(
migration_status="Waiting Termination", term_date__lte=timezone.now() + datetime.timedelta(1) migration_status="Waiting Termination", term_date__lte=timezone.now() + datetime.timedelta(1)
) )[:limit]
serializer = MigrationOverView(migrations, many=True) serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data) return Response(serializer.data)
class MigrationListAll(APIView):
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.all()[:limit]
serializer = MigrationSerializer(migrations, many=True)
return Response(serializer.data)