| Server IP : 103.234.187.230 / Your IP : 216.73.216.216 Web Server : Apache System : Linux lserver42043-ind.megavelocity.net 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64 User : apache ( 48) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/api.hellogtx.com/apihellogtx/flightinventory/ |
Upload File : |
from django.shortcuts import render
import requests
import json
from datetime import date
from django.http import Http404
from rest_framework.views import APIView
from rest_framework import generics
from rest_framework.response import Response
from rest_framework.status import (
HTTP_400_BAD_REQUEST,
HTTP_404_NOT_FOUND,
HTTP_200_OK,
HTTP_500_INTERNAL_SERVER_ERROR
)
from flightinventory.filters import AirLinePriceFilter, AirLineInventoryFilter
from django_filters.rest_framework import DjangoFilterBackend
from flightinventory.serializers import FlightInventorySerializer, AirLineInventorySerializer, AirLinePriceSerializer, IsDeleteFlightInventorySerializer
from django.core.exceptions import ObjectDoesNotExist
from flightinventory.models import FlightInventory, AirLineInventory, AirLinePrice
class FlightInventoryRequest(APIView):
def get(self, request, format=None):
try:
data = FlightInventory.objects.all().order_by('-id')
serializer = FlightInventorySerializer(data, many=True)
return Response(serializer.data, status=HTTP_200_OK)
except ObjectDoesNotExist as e:
return Response({'error': str(e), "status": False}, status=HTTP_404_NOT_FOUND)
except Exception as e:
return Response({'error': str(e), "status": False}, status=HTTP_500_INTERNAL_SERVER_ERROR)
def post(self, request):
serializer = FlightInventorySerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=HTTP_200_OK)
return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
class UpdateFlightInventory(APIView):
def get_object(self, pk):
try:
return FlightInventory.objects.get(pk=pk)
except FlightInventory.DoesNotExist:
raise Http404
def put(self, request, pk, format=None):
FlightInventory = self.get_object(pk)
serializer = FlightInventorySerializer(FlightInventory, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=HTTP_200_OK)
return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
class GetFlightInventory(APIView):
def get(self, request, pk, format=None):
try:
data = FlightInventory.objects.get(pk=pk)
serializer = FlightInventorySerializer(data, many=False)
return Response(serializer.data, status=HTTP_200_OK)
except ObjectDoesNotExist as e:
return Response({'error': str(e), "status": False}, status=HTTP_404_NOT_FOUND)
except Exception as e:
return Response({'error': str(e), "status": False}, status=HTTP_500_INTERNAL_SERVER_ERROR)
class GetCustomerFlightInventory(APIView):
def get(self, request, **kwargs):
try:
fromAirportCode = kwargs['fromAirportCode']
toAirportCode = kwargs['toAirportCode']
travelDate = kwargs['travelDate']
print(toAirportCode)
print(travelDate)
print(fromAirportCode)
data = FlightInventory.objects.all().order_by('-id')
serializer = FlightInventorySerializer(data, many=True)
return Response(serializer.data, status=HTTP_200_OK)
except ObjectDoesNotExist as e:
return Response({'error': str(e), "status": False}, status=HTTP_404_NOT_FOUND)
except Exception as e:
return Response({'error': str(e), "status": False}, status=HTTP_500_INTERNAL_SERVER_ERROR)
'''hjgsdhjsdgfgsdfshd'''
class FlightInventoriesApiView(generics.ListCreateAPIView):
queryset = FlightInventory.objects.all()
serializer_class = FlightInventorySerializer
#filter_backends = (DjangoFilterBackend,)
#filter_classes = (AirLinePriceFilter, AirLineInventoryFilter,)
def get_queryset(self):
security_key = self.request.query_params.get('SecurityKey', None)
flight_type = self.request.query_params.get('FlightType', None)
if security_key is not None:
if flight_type is not None:
oneway_from_airport_code = self.request.query_params.get('OFAC', None)
oneway_to_airport_code = self.request.query_params.get('OTAC', None)
round_from_airport_code = self.request.query_params.get('RFAC', None)
round_to_airport_code = self.request.query_params.get('RTAC', None)
today = date.today()
if flight_type == '1':
if oneway_from_airport_code is not None and oneway_to_airport_code is not None:
'''filter_qs = self.queryset.filter(airlineprices__FromDate__gte=today, SecurityKey=security_key,
FlightType=flight_type, OnwardFromAirportCode=oneway_from_airport_code,
OnwardToAirportCode=oneway_to_airport_code)'''
filter_qs = FlightInventory.objects.raw(" SELECT * FROM flightinventory_flightinventory as T1"
" LEFT JOIN flightinventory_airlineinventory as T2 ON"
" T1.id = T2.FlightInventory_id"
" LEFT JOIN flightinventory_airlineprice as T3 ON"
" T1.id = T3.FlightInventory_id"
" WHERE T3.FromDate >= '"+str(today)+"' AND T1.FlightType='"+flight_type+"'"
" AND OnwardFromAirportCode='"+oneway_from_airport_code+"' AND OnwardToAirportCode='"+oneway_to_airport_code+"'"
" GROUP BY T1.id")
return filter_qs
else:
return self.queryset.filter(airlineprices__FromDate__gte=today, SecurityKey=security_key,
FlightType=flight_type)
elif flight_type == '2':
if oneway_from_airport_code is not None and oneway_to_airport_code is not None \
and round_from_airport_code is not None and round_to_airport_code is not None:
query_result = self.queryset.filter(airlineprices__FromDate__gte=today,
# airlineprices__FromDate=today,
SecurityKey=security_key,
FlightType=flight_type,
OnwardFromAirportCode=oneway_from_airport_code,
OnwardToAirportCode=oneway_to_airport_code,
InwardFromAirportCode=round_from_airport_code,
InwardToAirportCode=round_to_airport_code)
return query_result
else:
return self.queryset.filter(airlineprices__FromDate__gte=today, SecurityKey=security_key,
FlightType=flight_type)
else:
return self.queryset.filter(SecurityKey=security_key,IsMarkForDelete=False)
return []
class FlightInventoryApiView(generics.RetrieveUpdateDestroyAPIView):
queryset = FlightInventory.objects.all()
serializer_class = FlightInventorySerializer
class CheckFlightInventoryApiView(generics.RetrieveUpdateAPIView):
queryset = AirLinePrice.objects.all()
serializer_class = AirLinePriceSerializer
class DeleteFlightInventoryApiView(generics.UpdateAPIView):
queryset = FlightInventory.objects.all()
serializer_class = IsDeleteFlightInventorySerializer