package au.com.dius.pact.consumer.examples; import com.google.gson.Gson; import org.apache.http.HttpResponse; import org.apache.http.client.fluent.Request; import org.apache.http.entity.ContentType; import java.io.IOException; public class ProviderCarBookingRestClient { public class Person { private String id; private String firstName; private String lastName; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } } public class Car { private String id; private String brand; private String model; private Integer year; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } public Integer getYear() { return year; } public void setYear(Integer year) { this.year = year; } } public HttpResponse placeOrder(String baseUrl, String personId, String carId, String date) throws IOException { Gson gson = new Gson(); String personStr = Request.Get(baseUrl + "/persons/" + personId) .execute().returnContent().asString(); Person person = gson.fromJson(personStr, Person.class); String carDetails = Request.Get(baseUrl + "/cars/" + carId) .execute().returnContent().asString(); Car car = gson.fromJson(carDetails, Car.class); String body = "{\n" + "\"person\": " + gson.toJson(person) + ",\n" + "\"cars\": " + gson.toJson(car) + "\n" + "}\n"; return Request.Post(baseUrl + "/orders/").bodyString(body, ContentType.APPLICATION_JSON) .execute().returnResponse(); } }