Compare commits

..

No commits in common. "08cbbb7ba767a2b98a76e73710bab639eb15c2ff" and "070a647fdd1fef67eae8a10bd73fbf2c091c2732" have entirely different histories.

2 changed files with 50 additions and 27 deletions

View File

@ -7,7 +7,6 @@ from rest_framework import routers
urlpatterns = [ urlpatterns = [
path('migrations/', views.MigrationList.as_view()), path('migrations/', views.MigrationList.as_view()),
path('migrations/all/', views.MigrationListAll.as_view()),
path('migrations/booked/', views.MigrationsBooked.as_view()), path('migrations/booked/', views.MigrationsBooked.as_view()),
path('migrations/waitingterm/', views.MigrationsWaitingTerm.as_view()), path('migrations/waitingterm/', views.MigrationsWaitingTerm.as_view()),
path('migrations/completed/', views.MigrationsCompleted.as_view()), path('migrations/completed/', views.MigrationsCompleted.as_view()),

View File

@ -14,19 +14,12 @@ 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):
limit = checkLimit(request.GET.get('limit', '')) migrations = Migration.objects.all()
migrations = Migration.objects.all()[:limit]
serializer = MigrationOverView(migrations, many=True) serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data) return Response(serializer.data)
@ -66,9 +59,8 @@ 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",)[:limit], many=True) migration_status="Booked",), 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):
@ -76,9 +68,8 @@ 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",)[:limit], many=True) migration_status="Waiting Termination",), 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):
@ -86,9 +77,8 @@ 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",)[:limit], many=True) migration_status="Completed",), 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):
@ -96,11 +86,10 @@ 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)
@ -109,11 +98,10 @@ 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)
@ -122,16 +110,52 @@ 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): # class MigrationViewSet(viewsets.ModelViewSet):
def get(self, request, format=None): # ''' Class for defining the migration views '''
limit = checkLimit(request.GET.get('limit', '')) # queryset = Migration.objects.all()
migrations = Migration.objects.all()[:limit] # serializer_class = MigrationOverView
serializer = MigrationSerializer(migrations, many=True) # # permission_classes = (AllowAny,)
return Response(serializer.data)
# @action(detail=False, methods=['GET'])
# def upcoming(self, request):
# ''' Returns a list of the migrations due today '''
# queryset = MigrationSerializer(
# Migration.objects.filter(booked_time=timezone.now(),
# migration_status="Booked"), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)
# @action(detail=False, methods=['GET'])
# def missed(self, request):
# ''' Returns a list of the missed migrations (Still have the status
# booked and date is greater then today) '''
# queryset = MigrationSerializer(
# Migration.objects.filter(booked_time__gte=timezone.now() + datetime.timedelta(1),
# migration_status="Booked"), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)
# @action(detail=False, methods=['GET'])
# def booked(self, request):
# ''' Returns a list of the booked migrations '''
# queryset = MigrationSerializer(Migration.objects.filter(
# migration_status="Booked",), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)
# @action(detail=False, methods=['GET'])
# def completed(self, request):
# ''' Returns a list of the completed migrations '''
# queryset = MigrationSerializer(Migration.objects.filter(
# migration_status="Completed",), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)
# @action(detail=False, methods=['GET'])
# def awaitterm(self, request):
# ''' Returns migrations awaiting termination '''
# queryset = MigrationSerializer(Migration.objects.filter(
# migration_status="Waiting Termination", term_date__lte=timezone.now()), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)