Class FareSelectionPageController
java.lang.Object
de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
de.hybris.platform.travelacceleratorstorefront.controllers.pages.TravelAbstractPageController
de.hybris.platform.traveladdon.controllers.pages.FareSelectionPageController
@Controller
@RequestMapping("/fare-selection")
public class FareSelectionPageController
extends TravelAbstractPageController
Controller for Fare Selection page
-
Nested Class Summary
Nested classes/interfaces inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
AbstractController.HttpNotFoundException -
Field Summary
FieldsFields inherited from class de.hybris.platform.travelacceleratorstorefront.controllers.pages.TravelAbstractPageController
FIFTY_NINE, TEN, TWENTY_THREEFields inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
CMS_PAGE_MODEL, CMS_PAGE_TITLE, PAGE_ROOT, REDIRECT_TO_LOGIN_FOR_CHECKOUT, REDIRECT_TO_MULTISTEP_CHECKOUT, REGISTRATION_CONSENT_ID, UTF_8Fields inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
FORWARD_PREFIX, REDIRECT_PREFIX, ROOT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected StringbuildRequestParameters(FareFinderForm fareFinderForm, String newDate, int refNumber) Builds fare selection current request parametersprotected intcountJourneyOptions(FareSelectionData fareSelectionData, int referenceNumber) Checks how many priced itineraries are available for the relevant journeyprotected List<PassengerTypeQuantityData>createPassengerTypes(javax.servlet.http.HttpServletRequest request) Method takes the request URL and extracts the passenger type and passenger quantity to create a list of PassengerTypeQuantityDataprotected voiddisableCachingForResponse(javax.servlet.http.HttpServletResponse response) getDatesForTabs(String selectedDateString) Creates a list of dates which will be displayed in Fare Selection table tabsgetFareSelectionPage(@Valid FareFinderForm fareFinderForm, org.springframework.validation.BindingResult bindingResult, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) Method responsible for handling GET request on Fare Selection pagegetLinksForTabs(List<Date> dates, FareFinderForm fareFinderForm, int refNumber) Returns links for tabs so that if users wants to change a date, new set of results is generated.protected PriceDatagetLowestPriceForDay(FareSelectionData fareSelectionData, int refNumber, String priceDisplayPassengerType) Calculates the lowest price for the date selected for particular leg of the journeyprotected Map<String,TransportFacilityData> getOriginDestination(FareSelectionData fareSelectionData) Provides travel route for the first leg of the journey based on response objectprotected voidpopulateModel(org.springframework.ui.Model model, FareFinderForm fareFinderForm, FareSelectionData fareSelectionData) Method handles the preparation of the Model objectprotected SavedSearchDatapopulateSavedSearchData(FareFinderForm fareFinderForm) Method responsible for populating SavedSearchData from FareFinderForm.protected FareSearchRequestDataprepareFareSearchRequestData(FareFinderForm fareFinderForm, javax.servlet.http.HttpServletRequest request) Method handles the preparation of a FareSearchRequestData object using the FareFinderForm.saveCustomerSearch(@Valid FareFinderForm fareFinderForm, org.springframework.validation.BindingResult bindingResult, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) Method responsible for handling POST request to save Customer Search.voidsortFareSelectionData(FareSelectionData fareSelectionData, String displayOrder, org.springframework.ui.Model model) Method to sort the FareSelectionData based on the displayOrder.sortingFareSelectionResults(@Valid FareFinderForm fareFinderForm, org.springframework.validation.BindingResult bindingResult, String refNumber, String displayOrder, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) Method called to sort the FareSelectionData based on a selected sorting parameter.Methods inherited from class de.hybris.platform.travelacceleratorstorefront.controllers.pages.TravelAbstractPageController
getConfigurationService, getDisableCurrencySelector, getJson, getReservationCode, getSiteUid, getTravelCartFacade, getTravelCustomerFacade, populateHours, populateMinutesMethods inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
addRegistrationConsentDataToModel, checkRequestUrl, createMetaElement, decodeWithScheme, getBaseSiteService, getCheckoutRedirectUrl, getCmsPageService, getCmsPreviewService, getCmsSiteService, getConsentFacade, getContentPageForLabelOrId, getCurrencies, getCurrentCurrency, getCurrentLanguage, getCustomerFacade, getHostConfigService, getI18nService, getLanguages, getMessageSource, getPageTitleResolver, getRequestContextData, getSessionService, getSiteConfigService, getSiteName, getStoreSessionFacade, getUser, getUserFacade, getViewForPage, getViewForPage, prepareNotFoundPage, setUpMetaData, setUpMetaDataForContentPage, storeCmsPageInModel, storeContentPageTitleInModel, storeContinueUrl, urlEncodeMethods inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
addRequestToModel, getBean
-
Field Details
-
MAX_BUFFER_SIZE
-
-
Constructor Details
-
FareSelectionPageController
public FareSelectionPageController()
-
-
Method Details
-
getFareSelectionPage
@RequestMapping(method=GET) public String getFareSelectionPage(@Valid @ModelAttribute("fareFinderForm") @Valid FareFinderForm fareFinderForm, org.springframework.validation.BindingResult bindingResult, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException Method responsible for handling GET request on Fare Selection page- Parameters:
fareFinderForm-bindingResult-model-request-response-- Returns:
- fare selection page
- Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException
-
saveCustomerSearch
@RequestMapping(value="/save-search", method=POST) @ResponseBody public Map<String,String> saveCustomerSearch(@Valid @Valid FareFinderForm fareFinderForm, org.springframework.validation.BindingResult bindingResult, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException Method responsible for handling POST request to save Customer Search.- Parameters:
fareFinderForm-bindingResult-model-request-response-- Returns:
- the JSON object representing the Success/Failure message.
- Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException
-
populateSavedSearchData
Method responsible for populating SavedSearchData from FareFinderForm.- Parameters:
fareFinderForm-- Returns:
- savedSearchData
-
populateModel
protected void populateModel(org.springframework.ui.Model model, FareFinderForm fareFinderForm, FareSelectionData fareSelectionData) Method handles the preparation of the Model object- Parameters:
fareFinderForm-model-fareSelectionData-
-
prepareFareSearchRequestData
protected FareSearchRequestData prepareFareSearchRequestData(FareFinderForm fareFinderForm, javax.servlet.http.HttpServletRequest request) Method handles the preparation of a FareSearchRequestData object using the FareFinderForm.- Parameters:
fareFinderForm-- Returns:
-
sortFareSelectionData
public void sortFareSelectionData(FareSelectionData fareSelectionData, String displayOrder, org.springframework.ui.Model model) Method to sort the FareSelectionData based on the displayOrder. If displayOrder is null, empty or not a valid FareSelectionDisplayOrder enum, the default sorting by departureDate is applied.- Parameters:
fareSelectionData- as the FareSelectionData to be sorteddisplayOrder- as the String corresponding to a sortingStrategymodel-
-
sortingFareSelectionResults
@RequestMapping(value="/sorting-fare-selection-results", method=POST) public String sortingFareSelectionResults(@Valid @Valid FareFinderForm fareFinderForm, org.springframework.validation.BindingResult bindingResult, @RequestParam String refNumber, @RequestParam String displayOrder, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException Method called to sort the FareSelectionData based on a selected sorting parameter.- Parameters:
fareFinderForm- as the fareFinderFormbindingResult- as the bindingResult of the fareFinderFormrefNumber- as the refNumber of the leg to orderdisplayOrder- as the selected parameter used to order the fareSelectionDatamodel-request-response-- Returns:
- the JSON object to refresh the result section with the sorted results
- Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException
-
disableCachingForResponse
protected void disableCachingForResponse(javax.servlet.http.HttpServletResponse response) -
getLowestPriceForDay
protected PriceData getLowestPriceForDay(FareSelectionData fareSelectionData, int refNumber, String priceDisplayPassengerType) Calculates the lowest price for the date selected for particular leg of the journey- Parameters:
fareSelectionData- - full response objectrefNumber- - identifier of the leg- Returns:
- lowest price for day
-
getDatesForTabs
Creates a list of dates which will be displayed in Fare Selection table tabs- Parameters:
selectedDateString- - date selected for a leg- Returns:
- a list of dates for tabs
-
countJourneyOptions
Checks how many priced itineraries are available for the relevant journey- Parameters:
fareSelectionData- - full response objectreferenceNumber- - specifies which leg of the journey it is- Returns:
- number of options for the journey
-
createPassengerTypes
protected List<PassengerTypeQuantityData> createPassengerTypes(javax.servlet.http.HttpServletRequest request) Method takes the request URL and extracts the passenger type and passenger quantity to create a list of PassengerTypeQuantityData- Parameters:
request-- Returns:
- List
-
getLinksForTabs
protected List<String> getLinksForTabs(List<Date> dates, FareFinderForm fareFinderForm, int refNumber) Returns links for tabs so that if users wants to change a date, new set of results is generated.- Parameters:
dates- - dates that will be displayed for tabsfareFinderForm-refNumber-- Returns:
- links to fare selection page with updated date
-
buildRequestParameters
protected String buildRequestParameters(FareFinderForm fareFinderForm, String newDate, int refNumber) Builds fare selection current request parameters- Parameters:
fareFinderForm-newDate-refNumber-- Returns:
-
getOriginDestination
protected Map<String,TransportFacilityData> getOriginDestination(FareSelectionData fareSelectionData) Provides travel route for the first leg of the journey based on response object- Parameters:
fareSelectionData-- Returns:
- travel route
-