Skip to content

Commit a2d897b

Browse files
authored
SDK-1385 add examples on links (#176)
1 parent 4a63387 commit a2d897b

26 files changed

+1092
-216
lines changed

examples/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<java.version>1.8</java.version>
1212
<maven.compiler.source>1.8</maven.compiler.source>
1313
<maven.compiler.target>1.8</maven.compiler.target>
14-
<rapid-java-sdk.sdk.version>LATEST</rapid-java-sdk.sdk.version>
14+
<rapid-java-sdk.sdk.version>5.1.0-SNAPSHOT</rapid-java-sdk.sdk.version>
1515
</properties>
1616

1717
<repositories>

examples/src/main/java/com/expediagroup/sdk/rapid/examples/RapidSdkDemoApplication.java

Lines changed: 83 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.expediagroup.sdk.rapid.examples;
22

33
import com.expediagroup.sdk.rapid.examples.salesprofiles.DefaultRapidPartnerProfile;
4-
import com.expediagroup.sdk.rapid.examples.scenarios.booking.CancelHeldBookingScenario;
54
import com.expediagroup.sdk.rapid.examples.scenarios.booking.AsyncSingleRoomBookScenario;
65
import com.expediagroup.sdk.rapid.examples.scenarios.booking.MultiRoomHoldAndResumeBookScenario;
76
import com.expediagroup.sdk.rapid.examples.scenarios.booking.SingleRoomBookScenario;
7+
import com.expediagroup.sdk.rapid.examples.scenarios.content.GetPropertyContentInAdditionalLanguageScenario;
8+
import com.expediagroup.sdk.rapid.examples.scenarios.content.GetPropertyContentScenario;
89
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetListOfRegionNamesScenario;
910
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetRegionByAncestorIdScenario;
1011
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetRegionDetailsAndPropertyIdsScenario;
@@ -13,7 +14,12 @@
1314
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionCoordinatesScenario;
1415
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionDescendantsScenario;
1516
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionWithMultiPolygonCoordinatesScenario;
17+
import com.expediagroup.sdk.rapid.examples.scenarios.managebooking.CancelHeldBookingScenario;
18+
import com.expediagroup.sdk.rapid.examples.scenarios.managebooking.ChangeRoomDetailsScenario;
19+
import com.expediagroup.sdk.rapid.examples.scenarios.managebooking.CommitHardChangeScenario;
20+
import com.expediagroup.sdk.rapid.examples.scenarios.managebooking.DeleteRoomScenario;
1621
import com.expediagroup.sdk.rapid.examples.scenarios.shopping.GetAdditionalAvailabilityOfPropertyScenario;
22+
import com.expediagroup.sdk.rapid.examples.scenarios.shopping.GetPaymentOptionsOfRoomScenario;
1723
import org.slf4j.Logger;
1824
import org.slf4j.LoggerFactory;
1925

@@ -39,12 +45,20 @@ public static void main(String[] args) {
3945
1. Getting property availability for a test property
4046
2. Getting additional availability of the first property returned
4147
*/
42-
43-
logger.info("Running Get Additional Availability Of Property Scenario...");
4448
GetAdditionalAvailabilityOfPropertyScenario getAdditionalAvailabilityOfPropertyScenario = new GetAdditionalAvailabilityOfPropertyScenario();
4549
getAdditionalAvailabilityOfPropertyScenario.setProfile(new DefaultRapidPartnerProfile());
4650
getAdditionalAvailabilityOfPropertyScenario.run();
4751

52+
/* Run Get Payment Options Of Room Scenario using the default profile
53+
This scenario demonstrates the following:
54+
1. Shopping for properties
55+
2. Checking room prices for the property
56+
3. Getting payment options of the first room in the property
57+
*/
58+
GetPaymentOptionsOfRoomScenario getPaymentOptionsOfRoomScenario = new GetPaymentOptionsOfRoomScenario();
59+
getPaymentOptionsOfRoomScenario.setProfile(new DefaultRapidPartnerProfile());
60+
getPaymentOptionsOfRoomScenario.run();
61+
4862
logger.info("=============================== End of Shopping Scenarios =============================");
4963

5064
logger.info("=============================== Running Booking Scenarios =============================");
@@ -55,7 +69,6 @@ public static void main(String[] args) {
5569
2. Checking room prices for the property
5670
3. Booking the property
5771
*/
58-
logger.info("Running Book Single Room Scenario using the default profile in synchronous manner...");
5972
SingleRoomBookScenario singleRoomBookScenario = new SingleRoomBookScenario();
6073
singleRoomBookScenario.setProfile(new DefaultRapidPartnerProfile());
6174
singleRoomBookScenario.run();
@@ -66,7 +79,6 @@ public static void main(String[] args) {
6679
2. Checking room prices for the property
6780
3. Booking the property in asynchronous manner
6881
*/
69-
logger.info("Running Book Single Room Scenario using the default profile in asynchronous manner...");
7082
AsyncSingleRoomBookScenario asyncSingleRoomBookScenario = new AsyncSingleRoomBookScenario();
7183
asyncSingleRoomBookScenario.setProfile(new DefaultRapidPartnerProfile());
7284
asyncSingleRoomBookScenario.run();
@@ -78,24 +90,87 @@ public static void main(String[] args) {
7890
3. Hold the property rooms.
7991
4. Resume the booking process.
8092
*/
81-
logger.info("Running Book Multiple Rooms with Hold and Resume Scenario using the default profile...");
8293
MultiRoomHoldAndResumeBookScenario multiRoomHoldAndResumeBookScenario = new MultiRoomHoldAndResumeBookScenario();
8394
multiRoomHoldAndResumeBookScenario.setProfile(new DefaultRapidPartnerProfile());
8495
multiRoomHoldAndResumeBookScenario.run();
8596

97+
logger.info("=============================== End of Booking Scenarios ==============================");
98+
99+
logger.info("=============================== Running Manage Booking Scenarios ===========================");
100+
101+
/* Run Change Room Details Scenario using the default profile
102+
This scenario demonstrates the following:
103+
1. Shopping for properties
104+
2. Checking room prices for the property
105+
3. Booking a single room in the property
106+
4. Retrieve itinerary by itinerary id
107+
5. Change room details for first room in booking
108+
6. Retrieve updated itinerary
109+
*/
110+
ChangeRoomDetailsScenario changeRoomDetailsScenario = new ChangeRoomDetailsScenario();
111+
changeRoomDetailsScenario.setProfile(new DefaultRapidPartnerProfile());
112+
changeRoomDetailsScenario.run();
113+
86114
/* Run Cancel Held Booking Scenario using the default profile
87115
This scenario demonstrates the following:
88116
1. Shopping for properties
89117
2. Checking room prices for the property
90118
3. Booking a room with hold in the property
91119
4. Cancelling the held booking
92120
*/
93-
logger.info("Running Cancel Held Booking Scenario using the default profile...");
94121
CancelHeldBookingScenario cancelHeldBookingScenario = new CancelHeldBookingScenario();
95122
cancelHeldBookingScenario.setProfile(new DefaultRapidPartnerProfile());
96123
cancelHeldBookingScenario.run();
97124

98-
logger.info("=============================== End of Booking Scenarios ==============================");
125+
/* Run Delete Room Scenario using the default profile
126+
This scenario demonstrates the following:
127+
1. Shopping for properties
128+
2. Checking room prices for the property
129+
3. Booking a room in the property
130+
4. Retrieve itinerary by itinerary id
131+
5. Deleting the first room in booking
132+
6. Retrieve updated itinerary
133+
*/
134+
DeleteRoomScenario deleteRoomScenario = new DeleteRoomScenario();
135+
deleteRoomScenario.setProfile(new DefaultRapidPartnerProfile());
136+
deleteRoomScenario.run();
137+
138+
/* Run Commit Change Room With Refund Scenario using the default profile
139+
This scenario demonstrates the following:
140+
1. Shopping for properties
141+
2. Checking room prices for the property
142+
3. Booking two rooms in the property
143+
4. Retrieve itinerary by itinerary id
144+
5. Check if booking is eligible for hard change
145+
6. Delete first room in booking
146+
7. Retrieve updated itinerary
147+
*/
148+
CommitHardChangeScenario commitHardChangeScenario = new CommitHardChangeScenario();
149+
commitHardChangeScenario.setProfile(new DefaultRapidPartnerProfile());
150+
commitHardChangeScenario.run();
151+
152+
logger.info("=============================== End of Manage Booking Scenarios ===========================");
153+
154+
logger.info("=============================== Running Property Content Scenarios ===========================");
155+
156+
/* Run Get Property Content Scenario using the default profile
157+
This scenario demonstrates the following:
158+
1. Getting property content by property id
159+
*/
160+
GetPropertyContentScenario getPropertyContentScenario = new GetPropertyContentScenario();
161+
getPropertyContentScenario.setProfile(new DefaultRapidPartnerProfile());
162+
getPropertyContentScenario.run();
163+
164+
/* Run Get Property Content In Additional Language Scenario using the default profile
165+
This scenario demonstrates the following:
166+
1. Getting property content by property id
167+
2. Getting property content in additional language
168+
*/
169+
GetPropertyContentInAdditionalLanguageScenario getPropertyContentInAdditionalLanguageScenario = new GetPropertyContentInAdditionalLanguageScenario();
170+
getPropertyContentInAdditionalLanguageScenario.setProfile(new DefaultRapidPartnerProfile());
171+
getPropertyContentInAdditionalLanguageScenario.run();
172+
173+
logger.info("=============================== End of Property Content Scenarios ===========================");
99174

100175
logger.info("=============================== Running Geography Scenarios ===========================");
101176

@@ -104,7 +179,6 @@ public static void main(String[] args) {
104179
1. Getting all regions with details in a paginated manner
105180
2. Filtering region names
106181
*/
107-
logger.info("Running Get List of Region Names Scenario...");
108182
GetListOfRegionNamesScenario getListOfRegionNamesScenario = new GetListOfRegionNamesScenario();
109183
getListOfRegionNamesScenario.setProfile(new DefaultRapidPartnerProfile());
110184
getListOfRegionNamesScenario.run();
@@ -114,7 +188,6 @@ public static void main(String[] args) {
114188
1. Getting region details by region id
115189
2. Accessing region details
116190
*/
117-
logger.info("Running Get Region Name of Region Scenario...");
118191
GetRegionDetailsAndPropertyIdsScenario getRegionNameOfRegionScenario = new GetRegionDetailsAndPropertyIdsScenario();
119192
getRegionNameOfRegionScenario.setProfile(new DefaultRapidPartnerProfile());
120193
getRegionNameOfRegionScenario.run();
@@ -124,7 +197,6 @@ public static void main(String[] args) {
124197
1. Getting paginated regions details by ancestor id
125198
2. Accessing region details
126199
*/
127-
logger.info("Running Get Region By Ancestor Id Scenario...");
128200
GetRegionByAncestorIdScenario getRegionByAncestorIdScenario = new GetRegionByAncestorIdScenario();
129201
getRegionByAncestorIdScenario.setProfile(new DefaultRapidPartnerProfile());
130202
getRegionByAncestorIdScenario.run();
@@ -135,7 +207,6 @@ public static void main(String[] args) {
135207
2. Accessing region coordinates of type multipolygon
136208
3. Accessing every polygon list of coordinates.
137209
*/
138-
logger.info("Running Get Region With MultiPolygon Coordinates Scenario...");
139210
ParseRegionWithMultiPolygonCoordinatesScenario parseRegionWithMultiPolygonCoordinatesScenario = new ParseRegionWithMultiPolygonCoordinatesScenario();
140211
parseRegionWithMultiPolygonCoordinatesScenario.setProfile(new DefaultRapidPartnerProfile());
141212
parseRegionWithMultiPolygonCoordinatesScenario.run();
@@ -145,7 +216,6 @@ public static void main(String[] args) {
145216
1. Getting region details with ancestors by region id
146217
2. Parsing region ancestors
147218
*/
148-
logger.info("Running Parse Region Ancestors Scenario...");
149219
ParseRegionAncestorsScenario parseRegionAncestorsScenario = new ParseRegionAncestorsScenario();
150220
parseRegionAncestorsScenario.setProfile(new DefaultRapidPartnerProfile());
151221
parseRegionAncestorsScenario.run();
@@ -155,7 +225,6 @@ public static void main(String[] args) {
155225
1. Getting region details with descendants by region id
156226
2. Parsing region descendants
157227
*/
158-
logger.info("Running Parse Region Descendants Scenario...");
159228
ParseRegionDescendantsScenario parseRegionDescendantsScenario = new ParseRegionDescendantsScenario();
160229
parseRegionDescendantsScenario.setProfile(new DefaultRapidPartnerProfile());
161230
parseRegionDescendantsScenario.run();
@@ -165,7 +234,6 @@ public static void main(String[] args) {
165234
1. Getting region details with coordinates by region id
166235
2. Parsing region coordinates
167236
*/
168-
logger.info("Running Parse Region Coordinates Scenario...");
169237
ParseRegionCoordinatesScenario parseRegionCoordinatesScenario = new ParseRegionCoordinatesScenario();
170238
parseRegionCoordinatesScenario.setProfile(new DefaultRapidPartnerProfile());
171239
parseRegionCoordinatesScenario.run();
@@ -175,7 +243,6 @@ public static void main(String[] args) {
175243
1. Getting region details with property ids by region id
176244
2. Parsing region categories
177245
*/
178-
logger.info("Running Parse Region Categories Scenario...");
179246
ParseRegionCategoriesScenario parseRegionCategoriesScenario = new ParseRegionCategoriesScenario();
180247
parseRegionCategoriesScenario.setProfile(new DefaultRapidPartnerProfile());
181248
parseRegionCategoriesScenario.run();

examples/src/main/java/com/expediagroup/sdk/rapid/examples/scenarios/booking/AsyncSingleRoomBookScenario.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public void setProfile(RapidPartnerSalesProfile rapidPartnerSalesProfile) {
3232
@Override
3333
public void run() {
3434

35+
logger.info("Running Book Single Room Scenario using the default profile in asynchronous manner...");
36+
3537
// Shopping for properties
3638
logger.info("Async call - Getting property availability for test property: {}", Constants.TEST_PROPERTY_ID);
3739

@@ -59,7 +61,7 @@ private CompletableFuture<Itinerary> getItinerary(ItineraryCreation itineraryCre
5961
// Manage booking
6062
logger.info("Getting itinerary by itinerary id...");
6163
BookService bookService = new BookService();
62-
return bookService.asyncGetReservationByItineraryId(itineraryCreation)
64+
return bookService.asyncGetReservation(itineraryCreation)
6365
.thenApply(response -> response.getData());
6466
}
6567

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.expediagroup.sdk.rapid.examples.scenarios.booking;
2+
3+
import com.expediagroup.sdk.rapid.examples.Constants;
4+
import com.expediagroup.sdk.rapid.examples.salesprofiles.RapidPartnerSalesProfile;
5+
import com.expediagroup.sdk.rapid.examples.scenarios.RapidScenario;
6+
import com.expediagroup.sdk.rapid.examples.services.BookService;
7+
import com.expediagroup.sdk.rapid.examples.services.ShopService;
8+
import com.expediagroup.sdk.rapid.models.Itinerary;
9+
import com.expediagroup.sdk.rapid.models.ItineraryCreation;
10+
import com.expediagroup.sdk.rapid.models.Property;
11+
import com.expediagroup.sdk.rapid.models.PropertyAvailability;
12+
import com.expediagroup.sdk.rapid.models.RoomPriceCheck;
13+
import org.slf4j.Logger;
14+
import org.slf4j.LoggerFactory;
15+
16+
import java.util.Arrays;
17+
import java.util.List;
18+
19+
public class SingleRoomBookScenario implements RapidScenario {
20+
21+
private static final Logger logger = LoggerFactory.getLogger(SingleRoomBookScenario.class);
22+
private ShopService shopService = new ShopService();
23+
private RapidPartnerSalesProfile rapidPartnerSalesProfile;
24+
25+
@Override
26+
public void setProfile(RapidPartnerSalesProfile rapidPartnerSalesProfile) {
27+
this.rapidPartnerSalesProfile = rapidPartnerSalesProfile;
28+
}
29+
30+
@Override
31+
public void run() {
32+
33+
// Shopping for properties
34+
logger.info("Getting property availability for test property: {}", Constants.TEST_PROPERTY_ID);
35+
36+
List<Property> propertyAvailabilityList = shopService.getSingleRoomPropertiesAvailability(this.rapidPartnerSalesProfile).getData();
37+
38+
if (propertyAvailabilityList == null || propertyAvailabilityList.isEmpty()) {
39+
throw new IllegalStateException("No property availability found for the test property.");
40+
}
41+
42+
logger.info("Property Availability: {}", propertyAvailabilityList.get(0).getStatus());
43+
44+
// Checking room prices for the property
45+
logger.info("Checking room prices for the property: {}...", Constants.TEST_PROPERTY_ID);
46+
Property property = propertyAvailabilityList.get(0);
47+
RoomPriceCheck roomPriceCheck = null;
48+
49+
if (property instanceof PropertyAvailability) {
50+
PropertyAvailability propertyAvailability = (PropertyAvailability) property;
51+
roomPriceCheck = shopService.checkRoomPrices(propertyAvailability, 0, 0).getData();
52+
logger.info("Room Price Check: {}", roomPriceCheck.getStatus());
53+
}
54+
55+
// Booking a single room in the property
56+
logger.info("Booking a room in test property: {}...", Constants.TEST_PROPERTY_ID);
57+
58+
BookService bookService = new BookService();
59+
ItineraryCreation itineraryCreation = bookService.createBooking(roomPriceCheck, Arrays.asList("2")).getData();
60+
61+
logger.info("Booking Success. Itinerary id: {}", itineraryCreation.getItineraryId());
62+
63+
// Manage booking
64+
logger.info("Getting itinerary by itinerary id...");
65+
Itinerary itinerary = bookService.getReservation(itineraryCreation).getData();
66+
logger.info("Itinerary: {}", itinerary.getItineraryId());
67+
logger.info("Count of rooms booked: {}", itinerary.getRooms().size());
68+
}
69+
}

examples/src/main/java/com/expediagroup/sdk/rapid/examples/scenarios/booking/MultiRoomHoldAndResumeBookScenario.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,16 @@ public void setProfile(RapidPartnerSalesProfile rapidPartnerSalesProfile) {
3232
@Override
3333
public void run() {
3434

35+
logger.info("Running Book Multiple Rooms with Hold and Resume Scenario using the default profile...");
36+
3537
// Shopping for properties
3638
/*
3739
* To request multiple rooms (of the same type), include one instance of occupancy for each room requested.
3840
* Up to 8 rooms may be requested or booked at once.
3941
*/
4042
logger.info("Getting property availability for test property: [{}]", Constants.TEST_PROPERTY_ID);
4143
List<String> occupancy = Arrays.asList("2", "2");
42-
List<Property> propertyAvailabilityList = shopService.getMultipleRoomsPropertiesAvailability(this.rapidPartnerSalesProfile, occupancy).getData();
44+
List<Property> propertyAvailabilityList = shopService.getPropertiesAvailability(occupancy, this.rapidPartnerSalesProfile).getData();
4345

4446
if (propertyAvailabilityList == null || propertyAvailabilityList.isEmpty()) {
4547
throw new IllegalStateException("No property availability found for the test property.");
@@ -77,7 +79,7 @@ public void run() {
7779
// Make a retrieve call to verify the booking has been resumed properly.
7880
logger.info("Getting itinerary by itinerary id: [{}] to verify the booking has been resumed successfully...",
7981
itineraryCreation.getItineraryId());
80-
Itinerary itinerary = bookService.getReservationByItineraryId(itineraryCreation).getData();
82+
Itinerary itinerary = bookService.getReservation(itineraryCreation).getData();
8183

8284
logger.info("Itinerary rooms status after resume booking:");
8385
itinerary.getRooms().forEach(room ->

0 commit comments

Comments
 (0)