Newer
Older
using BookingMicroservice.Models;
namespace BookingMicroservice.Clients
{
public class FlightServiceClient : IFlightServiceClient
{
private readonly HttpClient httpClient;
private const string FLIGHT_API_PATH = "api/Flight";
private const string SEAT_API_PATH = "api/Seat";
public FlightServiceClient(HttpClient httpClient)
{
this.httpClient = httpClient;
}
public async Task<HttpResponseMessage> GetFlightCapacityAsync(int flightId, int classType)
{
return await httpClient.GetAsync($"{FLIGHT_API_PATH}/{flightId}/capacity?classType={classType}");
}
public async Task<HttpResponseMessage> IsSeatAvailableAsync(int seatId)
{
return await httpClient.GetAsync($"{SEAT_API_PATH}/{seatId}/isAvailable");
}
public async Task<HttpResponseMessage> BookSeatAsync(int seatId)
{
return await httpClient.PutAsync($"{SEAT_API_PATH}/{seatId}", null);
}
public async Task<HttpResponseMessage> GetFlightsByIdAsync(FlightIdCollection flightIdCollection)
{
return await httpClient.PostAsJsonAsync($"{FLIGHT_API_PATH}/byIds", flightIdCollection);
}