Untitled
unknown
plain_text
a year ago
2.2 kB
10
Indexable
def get_filter_description(filters):
return " and ".join(filters) if filters else "any criteria"
def is_airline_name_match(entry, airline_name):
return airline_name and airline_name.lower() in entry['AirlineName'].lower()
def is_airport_name_match(entry, origin_or_destination_airportname):
if not origin_or_destination_airportname:
return False
return any(
origin_or_destination_airportname.lower() in route['AirportName'].lower()
for route in entry.get('RouteList', [])
)
def is_flight_number_match(entry, flight_number):
return flight_number and flight_number in entry['FlightNumber']
def is_airport_and_flight_number_match(entry, origin_or_destination_airportname, flight_number):
return is_airport_name_match(entry, origin_or_destination_airportname) and is_flight_number_match(entry, flight_number)
def filter_entries(shared_data, airline_name, origin_or_destination_airportname, flight_number):
if not any([airline_name, origin_or_destination_airportname, flight_number]):
return []
# If both airportName and flightNumber are available, filter by both
if origin_or_destination_airportname and flight_number:
return [
entry for entry in shared_data.flight_response['DailyScheduleResult']
if is_airport_and_flight_number_match(entry, origin_or_destination_airportname, flight_number)
]
# Otherwise, filter based on individual conditions
return [
entry for entry in shared_data.flight_response['DailyScheduleResult']
if is_airline_name_match(entry, airline_name) or
is_airport_name_match(entry, origin_or_destination_airportname) or
is_flight_number_match(entry, flight_number)
]
def log_filtered_entries(filtered_entries):
logger.info(f"filtered entries {filtered_entries}")
def get_result_data(filtered_entries):
return {
"DailyScheduleResult": filtered_entries
}
# Main logic
filter_description = get_filter_description(filters)
filtered_entries = filter_entries(shared_data, airline_name, origin_or_destination_airportname, flight_number)
log_filtered_entries(filtered_entries)
result_data = get_result_data(filtered_entries)
Editor is loading...
Leave a Comment