Added some endpoints for extra details
This commit is contained in:
parent
ad5dfa5af2
commit
070a647fdd
@ -7,5 +7,11 @@ from rest_framework import routers
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('migrations/', views.MigrationList.as_view()),
|
path('migrations/', views.MigrationList.as_view()),
|
||||||
path('migrations/<str:pk>/', views.MigrationDetails.as_view())
|
path('migrations/booked/', views.MigrationsBooked.as_view()),
|
||||||
|
path('migrations/waitingterm/', views.MigrationsWaitingTerm.as_view()),
|
||||||
|
path('migrations/completed/', views.MigrationsCompleted.as_view()),
|
||||||
|
path('migrations/pending/', views.PendingMigrations.as_view()),
|
||||||
|
path('migrations/missed/', views.MissedMigrations.as_view()),
|
||||||
|
path('migrations/pendingterm/', views.PendingTerm.as_view()),
|
||||||
|
path('migrations/<str:pk>/', views.MigrationDetails.as_view()),
|
||||||
]
|
]
|
||||||
|
|||||||
@ -38,7 +38,7 @@ class MigrationDetails(APIView):
|
|||||||
try:
|
try:
|
||||||
migration = Migration.objects.get(id=pk)
|
migration = Migration.objects.get(id=pk)
|
||||||
return migration
|
return migration
|
||||||
except Migrtation.DoesNotExist:
|
except Migration.DoesNotExist:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
def get(self, request, pk, format=None):
|
def get(self, request, pk, format=None):
|
||||||
@ -54,6 +54,67 @@ class MigrationDetails(APIView):
|
|||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
class MigrationsBooked(APIView):
|
||||||
|
'''
|
||||||
|
Returns list of booked migrations
|
||||||
|
'''
|
||||||
|
def get(self, request, format=None):
|
||||||
|
migrations = MigrationOverView(Migration.objects.filter(
|
||||||
|
migration_status="Booked",), many=True)
|
||||||
|
return Response(migrations.data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
class MigrationsWaitingTerm(APIView):
|
||||||
|
'''
|
||||||
|
Returns list of booked migrations
|
||||||
|
'''
|
||||||
|
def get(self, request, format=None):
|
||||||
|
migrations = MigrationOverView(Migration.objects.filter(
|
||||||
|
migration_status="Waiting Termination",), many=True)
|
||||||
|
return Response(migrations.data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
class MigrationsCompleted(APIView):
|
||||||
|
'''
|
||||||
|
Returns list of booked migrations
|
||||||
|
'''
|
||||||
|
def get(self, request, format=None):
|
||||||
|
migrations = MigrationOverView(Migration.objects.filter(
|
||||||
|
migration_status="Completed",), many=True)
|
||||||
|
return Response(migrations.data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
class PendingMigrations(APIView):
|
||||||
|
'''
|
||||||
|
Returns list of 'pending' migrations (migrations that are booked for today (maybe before timezone.now))
|
||||||
|
'''
|
||||||
|
def get(self, request, format=None):
|
||||||
|
migrations = Migration.objects.filter(
|
||||||
|
migration_status="Booked", booked_time__lte=timezone.now() + datetime.timedelta(1),
|
||||||
|
booked_time__gte=(timezone.now() + datetime.timedelta(-1))
|
||||||
|
)
|
||||||
|
serializer = MigrationOverView(migrations, many=True)
|
||||||
|
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
class MissedMigrations(APIView):
|
||||||
|
'''
|
||||||
|
Returns a list of missed migrations
|
||||||
|
'''
|
||||||
|
def get(self, request, format=None):
|
||||||
|
migrations = Migration.objects.filter(
|
||||||
|
booked_time__lte=timezone.now() + datetime.timedelta(-1),
|
||||||
|
migration_status="Booked"
|
||||||
|
)
|
||||||
|
serializer = MigrationOverView(migrations, many=True)
|
||||||
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
class PendingTerm(APIView):
|
||||||
|
'''
|
||||||
|
Returns a list of accounts pending termination (might add an arg so we can specify how many days)
|
||||||
|
'''
|
||||||
|
def get(self, request, format=None):
|
||||||
|
migrations = Migration.objects.filter(
|
||||||
|
migration_status="Waiting Termination", term_date__lte=timezone.now() + datetime.timedelta(1)
|
||||||
|
)
|
||||||
|
serializer = MigrationOverView(migrations, many=True)
|
||||||
|
return Response(serializer.data)
|
||||||
|
|
||||||
# class MigrationViewSet(viewsets.ModelViewSet):
|
# class MigrationViewSet(viewsets.ModelViewSet):
|
||||||
# ''' Class for defining the migration views '''
|
# ''' Class for defining the migration views '''
|
||||||
|
|||||||
Reference in New Issue
Block a user