Skip to content

Commit 53b4774

Browse files
committed
add transfers booking and tests
1 parent a7db709 commit 53b4774

File tree

6 files changed

+209
-15
lines changed

6 files changed

+209
-15
lines changed

src/main/java/com/amadeus/Amadeus.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,13 @@ public class Amadeus extends HTTPClient {
111111
*/
112112
public Airline airline;
113113

114+
/**
115+
* <p>
116+
* A namespaced client for the <code>/v1/ordering</code> endpoints.
117+
* </p>
118+
*/
119+
public Ordering ordering;
120+
114121
protected Amadeus(Configuration configuration) {
115122
super(configuration);
116123
this.referenceData = new ReferenceData(this);
@@ -125,6 +132,7 @@ protected Amadeus(Configuration configuration) {
125132
this.dutyOfCare = new DutyOfCare(this);
126133
this.location = new Location(this);
127134
this.airline = new Airline(this);
135+
this.ordering = new Ordering(this);
128136
}
129137

130138
/**
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.amadeus;
2+
3+
import com.amadeus.ordering.TransferOrders;
4+
5+
/**
6+
* <p>
7+
* A namespaced client for the
8+
* <code>/v1/ordering</code> endpoints.
9+
* </p>
10+
*
11+
* <p>
12+
* Access via the Amadeus client object.
13+
* </p>
14+
*
15+
* <pre>
16+
* Amadeus amadeus = Amadeus.builder("clientId", "secret").build();
17+
* amadeus.ordering;</pre>
18+
*
19+
* @hide
20+
*/
21+
public class Ordering {
22+
/**
23+
* <p>
24+
* A namespaced client for the
25+
* <code>/v1/ordering/transfer-orders</code> endpoints.
26+
* </p>
27+
*/
28+
public TransferOrders tranferOrders;
29+
30+
/**
31+
* Constructor.
32+
* @hide
33+
*/
34+
public Ordering(Amadeus client) {
35+
this.tranferOrders = new TransferOrders(client);
36+
}
37+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package com.amadeus.ordering;
2+
3+
import com.amadeus.Amadeus;
4+
import com.amadeus.Params;
5+
import com.amadeus.Response;
6+
import com.amadeus.exceptions.ResponseException;
7+
import com.amadeus.resources.Resource;
8+
import com.amadeus.resources.TransferOrder;
9+
import com.google.gson.JsonObject;
10+
11+
/**
12+
* <p>
13+
* A namespaced client for the
14+
* <code>/v1/ordering/transfer-orders</code> endpoints.
15+
* </p>
16+
*
17+
* <p>
18+
* Access via the Amadeus client object.
19+
* </p>
20+
*
21+
* <pre>
22+
* Amadeus amadeus = Amadeus.builder(API_KEY, API_SECRET).build();
23+
* amadeus.ordering.transferOrders;</pre>
24+
*/
25+
public class TransferOrders {
26+
private Amadeus client;
27+
private static final String TRANSFER_ORDERS_URL = "/v1/ordering/transfer-orders";
28+
29+
/**
30+
* Constructor.
31+
*
32+
* @hide
33+
*/
34+
public TransferOrders(Amadeus client) {
35+
this.client = client;
36+
}
37+
38+
/**
39+
* <p>
40+
* The Amadeus Transfer Offers API allows travelers to book private transfers.
41+
* </p>
42+
*
43+
* <pre>
44+
* amadeus.ordering.transferOrders.post(body);</pre>
45+
*
46+
* @param body the parameters to send to the API as a JsonObject
47+
* @param params URL parameters
48+
* @return an API resource
49+
* @throws ResponseException when an exception occurs
50+
*/
51+
public TransferOrder post(JsonObject body, Params params) throws ResponseException {
52+
Response response = client.post(TRANSFER_ORDERS_URL, params, body);
53+
return (TransferOrder) Resource.fromObject(response, TransferOrder.class);
54+
}
55+
56+
/**
57+
* <p>
58+
* The Amadeus Transfer Offers API allows travelers to book private transfers.
59+
* </p>
60+
*
61+
* <pre>
62+
* amadeus.ordering.transferOrders.post(body);</pre>
63+
*
64+
* @param body the parameters to send to the API as a String
65+
* @param params URL parameters
66+
* @return an API resource
67+
* @throws ResponseException when an exception occurs
68+
*/
69+
public TransferOrder post(String body, Params params) throws ResponseException {
70+
Response response = client.post(TRANSFER_ORDERS_URL, params, body);
71+
return (TransferOrder) Resource.fromObject(response, TransferOrder.class);
72+
}
73+
74+
}

src/main/java/com/amadeus/resources/TransferOrder.java

Lines changed: 75 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,92 @@
33
import lombok.Getter;
44
import lombok.ToString;
55

6-
76
/**
87
* A TransferOrder object as returned by the Transfer Booking API.
98
* @see com.amadeus.ordering.transferOrders#post()
109
*/
1110
@ToString
1211
public class TransferOrder extends Resource {
13-
private @Getter Integer status;
14-
private @Getter Integer code;
15-
private @Getter String title;
16-
private @Getter String detail;
17-
private @Getter IssueSource source;
18-
12+
private @Getter String type;
13+
private @Getter String id;
14+
private @Getter String reference;
15+
private @Getter TransferReservation[] transfers;
16+
private @Getter Passengers[] passengers;
17+
private @Getter Agency agency;
1918

2019
protected TransferOrder() {}
2120

2221
@ToString
23-
public class IssueSource {
24-
private @Getter String pointer;
25-
private @Getter String parameter;
26-
private @Getter String example;
22+
public class TransferReservation {
23+
private @Getter String confirmNbr;
24+
private @Getter String status;
25+
private @Getter String note;
26+
private @Getter String methodOfPayment;
27+
private @Getter String paymentServiceProvider;
28+
private @Getter String offerId;
29+
private @Getter String transferType;
30+
private @Getter String duration;
31+
private @Getter String[] methodsOfPaymentAccepted;
32+
private @Getter TransferOffersPost.Location start;
33+
private @Getter TransferOffersPost.Location end;
34+
private @Getter TransferOffersPost.StopOver[] stopOvers;
35+
private @Getter TransferOffersPost.PassenegerCharacteristics[] passenegerCharacteristics;
36+
private @Getter TransferOffersPost.Vehicle vehicle;
37+
private @Getter TransferOffersPost.ServiceProvider serviceProvider;
38+
private @Getter TransferOffersPost.PartnerInfo partnerInfo;
39+
private @Getter TransferOffersPost.Quotation quotation;
40+
private @Getter TransferOffersPost.Quotation converted;
41+
private @Getter TransferOffersPost.ExtraService[] extraServices;
42+
private @Getter TransferOffersPost.Equipment[] equipment;
43+
private @Getter TransferOffersPost.CancellationRules[] cancellationRules;
44+
private @Getter TransferOffersPost.DiscountCode[] discountCodes;
45+
private @Getter TransferOffersPost.Distance distance;
46+
47+
protected TransferReservation() {}
48+
49+
}
50+
51+
@ToString
52+
public class Passengers {
53+
private @Getter String type;
54+
private @Getter String firstName;
55+
private @Getter String lastName;
56+
private @Getter String title;
57+
private @Getter String paymentServiceProvider;
58+
private @Getter String offerId;
59+
private @Getter String transferType;
60+
private @Getter String duration;
61+
private @Getter String[] methodsOfPaymentAccepted;
62+
private @Getter Contact contacts;
63+
private @Getter TransferOffersPost.AddressCommon address;
64+
65+
protected Passengers() {}
66+
67+
}
68+
69+
@ToString
70+
public class Contact {
71+
private @Getter String phoneNumber;
72+
private @Getter String email;
73+
74+
protected Contact() {}
75+
76+
}
77+
78+
@ToString
79+
public class Agency {
80+
private @Getter Email contacts;
2781

28-
protected IssueSource() {}
82+
protected Agency() {}
2983

3084
}
31-
85+
86+
@ToString
87+
public class Email {
88+
private @Getter String address;
89+
90+
protected Email() {}
91+
92+
}
93+
3294
}

src/main/java/com/amadeus/shopping/TransferOffers.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
*/
2424
public class TransferOffers {
2525
private Amadeus client;
26+
private static final String TRANSFER_OFFERS_URL = "/v1/shopping/transfer-offers";
2627

2728
/**
2829
* Constructor.
@@ -46,7 +47,7 @@ public TransferOffers(Amadeus client) {
4647
* @throws ResponseException when an exception occurs
4748
*/
4849
public TransferOffersPost[] post(JsonObject body) throws ResponseException {
49-
Response response = client.post("/v1/shopping/transfer-offers", body);
50+
Response response = client.post(TRANSFER_OFFERS_URL, body);
5051
return
5152
(TransferOffersPost[]) Resource.fromArray(response, TransferOffersPost[].class);
5253
}
@@ -64,7 +65,7 @@ public TransferOffersPost[] post(JsonObject body) throws ResponseException {
6465
* @throws ResponseException when an exception occurs
6566
*/
6667
public TransferOffersPost[] post(String body) throws ResponseException {
67-
Response response = client.post("/v1/shopping/transfer-offers", body);
68+
Response response = client.post(TRANSFER_OFFERS_URL, body);
6869
return
6970
(TransferOffersPost[]) Resource.fromArray(response, TransferOffersPost[].class);
7071
}

src/test/java/com/amadeus/NamespaceTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.amadeus.ereputation.HotelSentiments;
1515
import com.amadeus.exceptions.ResponseException;
1616
import com.amadeus.location.analytics.CategoryRatedAreas;
17+
import com.amadeus.ordering.TransferOrders;
1718
import com.amadeus.referencedata.Airlines;
1819
import com.amadeus.referencedata.Location;
1920
import com.amadeus.referencedata.Locations;
@@ -88,6 +89,7 @@ public class NamespaceTest {
8889
assertNotNull(client.shopping.flightOffers.prediction);
8990
assertNotNull(client.shopping.flightOffers.upselling);
9091
assertNotNull(client.shopping.seatMaps);
92+
assertNotNull(client.shopping.transferOffers);
9193
assertNotNull(client.ereputation.hotelSentiments);
9294
assertNotNull(client.shopping.hotelOffersSearch);
9395
assertNotNull(client.airport.predictions.onTime);
@@ -110,6 +112,7 @@ public class NamespaceTest {
110112
assertNotNull(client.referenceData.locations.hotels.byGeocode);
111113
assertNotNull(client.referenceData.locations.cities);
112114
assertNotNull(client.airline.destinations);
115+
assertNotNull(client.ordering.tranferOrders);
113116
}
114117

115118
/**
@@ -802,4 +805,13 @@ public void testTransferOffers() throws ResponseException {
802805
assertEquals(transferOffers.post().length, 2);
803806
}
804807

808+
@Test
809+
public void testTransferOrders() throws ResponseException {
810+
// Testing Transfer Booking
811+
Params params = Params.with("foo", "bar");
812+
Mockito.when(client.post("/v1/ordering/transfer-orders", params, body)).thenReturn(singleResponse);
813+
TransferOrders transferOrders = new TransferOrders(client);
814+
assertNotNull(transferOrders.post(body, params));
815+
}
816+
805817
}

0 commit comments

Comments
 (0)