Skip to content
Snippets Groups Projects
Commit 0c741d2a authored by Abdelsamad, Mouaz R (UG - SISC)'s avatar Abdelsamad, Mouaz R (UG - SISC)
Browse files

add filter by airline id

parent e6fa7b5e
No related branches found
No related tags found
No related merge requests found
......@@ -18,9 +18,9 @@ namespace FlightMicroservice.Controllers
}
[HttpGet()]
public ActionResult GetFlights(string? origin = null, string? destination = null, DateTime? departureTime = null, DateTime? arrivalTime = null)
public ActionResult GetFlights(int? airlineId = null, string? origin = null, string? destination = null, DateTime? departureTime = null, DateTime? arrivalTime = null)
{
List<Flight> flights = flightService.GetFlights(origin, destination, departureTime, arrivalTime);
List<Flight> flights = flightService.GetFlights(airlineId, origin, destination, departureTime, arrivalTime);
if (flights == null)
return BadRequest();
......
......@@ -18,10 +18,13 @@ namespace FlightMicroservice.Services
return flight;
}
public List<Flight> GetFlights(string? origin, string? destination, DateTime? departureTime, DateTime? arrivalTime)
public List<Flight> GetFlights(int? airlineId, string? origin, string? destination, DateTime? departureTime, DateTime? arrivalTime)
{
IQueryable<Flight> query = dbContext.Flights.AsQueryable();
if(airlineId != null)
query = query.Where(flight => flight.AirlineId == airlineId);
if (!string.IsNullOrWhiteSpace(origin))
query = query.Where(flight => flight.Origin == origin);
......
......@@ -5,7 +5,7 @@ namespace FlightMicroservice.Services
public interface IFlightService
{
Flight? GetFlight(int flightId);
List<Flight> GetFlights(string? origin, string? destination, DateTime? departureTime, DateTime? arrivalTime);
List<Flight> GetFlights(int? airlineId, string? origin, string? destination, DateTime? departureTime, DateTime? arrivalTime);
Flight CreateFlight(int airlineId, string origin, string destination, DateTime departureTime, DateTime arrivalTime, int economyCapacity, int businessCapacity, decimal economyPrice, decimal businessPrice);
bool RemoveFlight(int flightId);
List<Seat> GetSeatsByFlightId(int flightId);
......
......@@ -18,14 +18,17 @@ namespace GatewayAPI.Clients.FlightService
return await httpClient.GetAsync($"{FLIGHT_API_PATH}/{flightId}");
}
public async Task<HttpResponseMessage> GetFlightsAsync(string? origin = null, string? destination = null, DateTime? departureTime = null, DateTime? arrivalTime = null)
public async Task<HttpResponseMessage> GetFlightsAsync(int? airlineId = null, string? origin = null, string? destination = null, DateTime? departureTime = null, DateTime? arrivalTime = null)
{
var queryParams = new List<string>();
if (origin != null)
if(airlineId != null)
queryParams.Add($"airlineId={airlineId}");
if (!string.IsNullOrEmpty(origin))
queryParams.Add($"origin={Uri.EscapeDataString(origin)}");
if (destination != null)
if (!string.IsNullOrEmpty(destination))
queryParams.Add($"destination={Uri.EscapeDataString(destination)}");
if (departureTime.HasValue)
......
......@@ -5,7 +5,7 @@ namespace GatewayAPI.Clients.FlightService
public interface IFlightServiceClient
{
Task<HttpResponseMessage> GetFlightAsync(int flightId);
Task<HttpResponseMessage> GetFlightsAsync(string? origin = null, string? destination = null, DateTime? departureTime = null, DateTime? arrivalTime = null);
Task<HttpResponseMessage> GetFlightsAsync(int? airlineId = null, string? origin = null, string? destination = null, DateTime? departureTime = null, DateTime? arrivalTime = null);
Task<HttpResponseMessage> AddFlightAsync(FlightCreation flight);
Task<HttpResponseMessage> GetFlightCapacityAsync(int flightId, int classType);
Task<HttpResponseMessage> GetFlightSeatsAsync(int flightId);
......
......@@ -16,9 +16,9 @@ namespace GatewayAPI.Controllers
}
[HttpGet()]
public async Task<IActionResult> GetFlights(string? origin = null, string? destination = null, DateTime? departureTime = null, DateTime? arrivalTime = null)
public async Task<IActionResult> GetFlights(int? airlineId = null, string? origin = null, string? destination = null, DateTime? departureTime = null, DateTime? arrivalTime = null)
{
HttpResponseMessage response = await flightServiceClient.GetFlightsAsync(origin, destination, departureTime, arrivalTime);
HttpResponseMessage response = await flightServiceClient.GetFlightsAsync(airlineId, origin, destination, departureTime, arrivalTime);
return new HttpResponseMessageResult(response);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment