Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/generate-and-publish-sdk-sources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@ jobs:
with:
name: rapid
version: ${{ inputs.version }}
transformations: "-th -te /v3 --operationIdsToTags"
transformations: "-th --operationIdsToTags"
repository: 'ExpediaGroup/rapid-java-sdk'
sdk_repo_ref: ${{ inputs.sdk_repo_ref || 'v20250304' }}
2 changes: 1 addition & 1 deletion examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<rapid-java-sdk.sdk.version>5.3.2</rapid-java-sdk.sdk.version>
<rapid-java-sdk.sdk.version>5.3.2+ads-SNAPSHOT</rapid-java-sdk.sdk.version>
</properties>

<repositories>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
package com.expediagroup.sdk.rapid.examples;

import com.expediagroup.sdk.rapid.examples.salesprofiles.DefaultRapidPartnerProfile;
import com.expediagroup.sdk.rapid.examples.scenarios.addelivery.GetAdsScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.booking.AsyncSingleRoomBookScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.booking.MultiRoomHoldAndResumeBookScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.booking.SingleRoomBookScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.content.GetPropertyContentInAdditionalLanguageScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.content.GetPropertyContentScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetListOfRegionNamesScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetRegionByAncestorIdScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetRegionDetailsAndPropertyIdsScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionAncestorsScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionCategoriesScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionCoordinatesScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionDescendantsScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionWithMultiPolygonCoordinatesScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.managebooking.CancelHeldBookingScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.managebooking.ChangeRoomDetailsScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.managebooking.DeleteRoomScenario;
Expand Down Expand Up @@ -186,90 +179,19 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
logger.info(
"========================== End of Property Content Scenarios ===========================");

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

/* Run Get List of Region Names Scenario using the default profile
This scenario demonstrates the following:
1. Getting all regions with details in a paginated manner
2. Filtering region names
*/
GetListOfRegionNamesScenario getListOfRegionNamesScenario = new GetListOfRegionNamesScenario();
getListOfRegionNamesScenario.setProfile(new DefaultRapidPartnerProfile());
getListOfRegionNamesScenario.run();

/* Run Get Region Name of Region Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details by region id
2. Accessing region details
*/
GetRegionDetailsAndPropertyIdsScenario getRegionNameOfRegionScenario =
new GetRegionDetailsAndPropertyIdsScenario();
getRegionNameOfRegionScenario.setProfile(new DefaultRapidPartnerProfile());
getRegionNameOfRegionScenario.run();

/* Run Get Region By Ancestor Id Scenario using the default profile
This scenario demonstrates the following:
1. Getting paginated regions details by ancestor id
2. Accessing region details
*/
GetRegionByAncestorIdScenario getRegionByAncestorIdScenario =
new GetRegionByAncestorIdScenario();
getRegionByAncestorIdScenario.setProfile(new DefaultRapidPartnerProfile());
getRegionByAncestorIdScenario.run();

/* Run Get Region With MultiPolygon Coordinates Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with multipolygon coordinates by region id
2. Accessing region coordinates of type multipolygon
3. Accessing every polygon list of coordinates.
*/
ParseRegionWithMultiPolygonCoordinatesScenario parseRegionWithMultiPolygonCoordinatesScenario =
new ParseRegionWithMultiPolygonCoordinatesScenario();
parseRegionWithMultiPolygonCoordinatesScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionWithMultiPolygonCoordinatesScenario.run();

/* Run Parse Region Ancestors Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with ancestors by region id
2. Parsing region ancestors
*/
ParseRegionAncestorsScenario parseRegionAncestorsScenario = new ParseRegionAncestorsScenario();
parseRegionAncestorsScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionAncestorsScenario.run();

/* Run Parse Region Descendants Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with descendants by region id
2. Parsing region descendants
*/
ParseRegionDescendantsScenario parseRegionDescendantsScenario =
new ParseRegionDescendantsScenario();
parseRegionDescendantsScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionDescendantsScenario.run();

/* Run Parse Region Coordinates Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with coordinates by region id
2. Parsing region coordinates
*/
ParseRegionCoordinatesScenario parseRegionCoordinatesScenario =
new ParseRegionCoordinatesScenario();
parseRegionCoordinatesScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionCoordinatesScenario.run();
logger.info("======================== Running Ad Delivery Scenarios =========================");

/* Run Parse Region Categories Scenario using the default profile
/* Run Get Ads Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with property ids by region id
2. Parsing region categories
1. Shopping for properties
2. Getting property availability for test property
3. Getting sponsored listings for the property
*/
ParseRegionCategoriesScenario parseRegionCategoriesScenario =
new ParseRegionCategoriesScenario();
parseRegionCategoriesScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionCategoriesScenario.run();
GetAdsScenario getAdsScenario = new GetAdsScenario();
getAdsScenario.setProfile(new DefaultRapidPartnerProfile());
getAdsScenario.run();

logger.info(
"=============================== End of Geography Scenarios ===========================");
logger.info("=========================== End of Ad Delivery Scenarios ======================");

logger.info(
"=======================================================================================");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
package com.expediagroup.sdk.rapid.examples;

import com.expediagroup.sdk.rapid.examples.salesprofiles.DefaultRapidPartnerProfile;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetListOfRegionNamesScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetRegionByAncestorIdScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.GetRegionDetailsAndPropertyIdsScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionAncestorsScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionCategoriesScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionCoordinatesScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionDescendantsScenario;
import com.expediagroup.sdk.rapid.examples.scenarios.geography.ParseRegionWithMultiPolygonCoordinatesScenario;
import java.util.concurrent.ExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* This is the main class for the Rapid SDK Geography demonstration.
*/
public class RapidSdkGeographyDemoApp {

private static final Logger logger = LoggerFactory.getLogger(RapidSdkGeographyDemoApp.class);

/**
* Main method to run the Rapid SDK Geography demonstration.
*
* @param args the arguments
* @throws ExecutionException the execution exception
* @throws InterruptedException the interrupted exception
*/
public static void main(String[] args) throws ExecutionException, InterruptedException {

logger.info("================================================================================");
logger.info("================================================================================");
logger.info("== ==");
logger.info(
"== Howdy! This is a demonstration of Expedia Group RAPID SDK Geography, Enjoy! ==");
logger.info("== ==");
logger.info("================================================================================");
logger.info("================================================================================");

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

/* Run Get List of Region Names Scenario using the default profile
This scenario demonstrates the following:
1. Getting all regions with details in a paginated manner
2. Filtering region names
*/
GetListOfRegionNamesScenario getListOfRegionNamesScenario = new GetListOfRegionNamesScenario();
getListOfRegionNamesScenario.setProfile(new DefaultRapidPartnerProfile());
getListOfRegionNamesScenario.run();

/* Run Get Region Name of Region Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details by region id
2. Accessing region details
*/
GetRegionDetailsAndPropertyIdsScenario getRegionNameOfRegionScenario =
new GetRegionDetailsAndPropertyIdsScenario();
getRegionNameOfRegionScenario.setProfile(new DefaultRapidPartnerProfile());
getRegionNameOfRegionScenario.run();

/* Run Get Region By Ancestor Id Scenario using the default profile
This scenario demonstrates the following:
1. Getting paginated regions details by ancestor id
2. Accessing region details
*/
GetRegionByAncestorIdScenario getRegionByAncestorIdScenario =
new GetRegionByAncestorIdScenario();
getRegionByAncestorIdScenario.setProfile(new DefaultRapidPartnerProfile());
getRegionByAncestorIdScenario.run();

/* Run Get Region With MultiPolygon Coordinates Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with multipolygon coordinates by region id
2. Accessing region coordinates of type multipolygon
3. Accessing every polygon list of coordinates.
*/
ParseRegionWithMultiPolygonCoordinatesScenario parseRegionWithMultiPolygonCoordinatesScenario =
new ParseRegionWithMultiPolygonCoordinatesScenario();
parseRegionWithMultiPolygonCoordinatesScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionWithMultiPolygonCoordinatesScenario.run();

/* Run Parse Region Ancestors Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with ancestors by region id
2. Parsing region ancestors
*/
ParseRegionAncestorsScenario parseRegionAncestorsScenario = new ParseRegionAncestorsScenario();
parseRegionAncestorsScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionAncestorsScenario.run();

/* Run Parse Region Descendants Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with descendants by region id
2. Parsing region descendants
*/
ParseRegionDescendantsScenario parseRegionDescendantsScenario =
new ParseRegionDescendantsScenario();
parseRegionDescendantsScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionDescendantsScenario.run();

/* Run Parse Region Coordinates Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with coordinates by region id
2. Parsing region coordinates
*/
ParseRegionCoordinatesScenario parseRegionCoordinatesScenario =
new ParseRegionCoordinatesScenario();
parseRegionCoordinatesScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionCoordinatesScenario.run();

/* Run Parse Region Categories Scenario using the default profile
This scenario demonstrates the following:
1. Getting region details with property ids by region id
2. Parsing region categories
*/
ParseRegionCategoriesScenario parseRegionCategoriesScenario =
new ParseRegionCategoriesScenario();
parseRegionCategoriesScenario.setProfile(new DefaultRapidPartnerProfile());
parseRegionCategoriesScenario.run();

logger.info("============================ End of Geography Scenarios ========================");

logger.info("================================================================================");
logger.info("================================================================================");
logger.info("== ==");
logger.info("== That's all folks! That was the demonstration of RAPID SDK Geography. ==");
logger.info("== ==");
logger.info("================================================================================");
logger.info("================================================================================");
System.exit(0);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package com.expediagroup.sdk.rapid.examples.scenarios.addelivery;

import com.expediagroup.sdk.core.model.Response;
import com.expediagroup.sdk.rapid.examples.Constants;
import com.expediagroup.sdk.rapid.examples.salesprofiles.RapidPartnerSalesProfile;
import com.expediagroup.sdk.rapid.examples.scenarios.RapidScenario;
import com.expediagroup.sdk.rapid.examples.services.AdDeliveryService;
import com.expediagroup.sdk.rapid.examples.services.ShopService;
import com.expediagroup.sdk.rapid.models.AdsResponse;
import com.expediagroup.sdk.rapid.models.Property;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* This scenario demonstrates the GetAds operation.
*/
public class GetAdsScenario implements RapidScenario {

private static final Logger logger = LoggerFactory.getLogger(GetAdsScenario.class);
private AdDeliveryService adDeliveryService = new AdDeliveryService();
private ShopService shopService = new ShopService();
private RapidPartnerSalesProfile rapidPartnerSalesProfile;

/**
* Sets the profile.
*
* @param rapidPartnerSalesProfile the profile
*/
@Override
public void setProfile(RapidPartnerSalesProfile rapidPartnerSalesProfile) {
this.rapidPartnerSalesProfile = rapidPartnerSalesProfile;
}

@Override
public void run() {

logger.info("Running Get Lodging Ads...");

// Shopping for properties
logger.info("Getting property availability for test property: {}", Constants.TEST_PROPERTY_ID);

List<Property> propertyAvailabilityList = shopService.getPropertiesAvailability(
Arrays.asList("2"), this.rapidPartnerSalesProfile).getData();

if (propertyAvailabilityList == null || propertyAvailabilityList.isEmpty()) {
throw new IllegalStateException("No property availability found for the test property.");
}

// Get the property ids from response
ArrayList<String> propertyIds = new ArrayList<>();
propertyAvailabilityList.forEach(property -> propertyIds.add(property.getPropertyId()));

// call Ad Delivery API
logger.info("Calling GetAdsOperation for property ids:");
propertyIds.forEach(propertyId -> logger.info("Property Id: [{}]", propertyId));

Response<AdsResponse> adsResponse = adDeliveryService.getAds(propertyIds);
logger.info("Get ads response status: [{}]", adsResponse.getStatusCode());
logger.info("Get ads response, number of sponsored listings: {}", adsResponse.getData()
.getSponsoredListings().size());
}
}
Loading