Skip to content

Commit

Permalink
[search] Fill cuisines for search result.
Browse files Browse the repository at this point in the history
  • Loading branch information
tatiana-yan authored and mpimenov committed Apr 2, 2020
1 parent 2b32b42 commit 349dea3
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 24 deletions.
31 changes: 30 additions & 1 deletion indexer/feature_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
#include "indexer/feature.hpp"
#include "indexer/feature_data.hpp"
#include "indexer/feature_visibility.hpp"
#include "indexer/ftypes_matcher.hpp"
#include "indexer/scales.hpp"

#include "geometry/point2d.hpp"
#include "platform/localization.hpp"

#include "coding/string_utf8_multilang.hpp"
#include "coding/transliteration.hpp"
Expand Down Expand Up @@ -373,4 +374,32 @@ vector<int8_t> GetDescriptionLangPriority(RegionData const & regionData, int8_t
bool const preferDefault = IsNativeLang(regionData, deviceLang);
return MakePrimaryNamePriorityList(deviceLang, preferDefault);
}

vector<string> GetCuisines(TypesHolder const & types)
{
vector<string> cuisines;
auto const & isCuisine = ftypes::IsCuisineChecker::Instance();
for (auto const t : types)
{
if (!isCuisine(t))
continue;
auto const cuisine = classif().GetFullObjectNamePath(t);
CHECK_EQUAL(cuisine.size(), 2, (cuisine));
cuisines.push_back(cuisine[1]);
}
return cuisines;
}

vector<string> GetLocalizedCuisines(TypesHolder const & types)
{
vector<string> localized;
auto const & isCuisine = ftypes::IsCuisineChecker::Instance();
for (auto const t : types)
{
if (!isCuisine(t))
continue;
localized.push_back(platform::GetLocalizedTypeName(classif().GetReadableObjectName(t)));
}
return localized;
}
} // namespace feature
6 changes: 6 additions & 0 deletions indexer/feature_utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,10 @@ namespace feature
/// - international language code;
/// - english language code;
std::vector<int8_t> GetDescriptionLangPriority(RegionData const & regionData, int8_t const deviceLang);

// Returns vector of cuisines readable names from classificator.
std::vector<std::string> GetCuisines(TypesHolder const & types);

// Returns vector of cuisines names localized by platform.
std::vector<std::string> GetLocalizedCuisines(TypesHolder const & types);
} // namespace feature
26 changes: 3 additions & 23 deletions indexer/map_object.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include "indexer/feature.hpp"
#include "indexer/feature_algo.hpp"
#include "indexer/feature_utils.hpp"
#include "indexer/ftypes_matcher.hpp"

#include "platform/localization.hpp"
Expand Down Expand Up @@ -168,32 +169,11 @@ Internet MapObject::GetInternet() const
return Internet::Unknown;
}

vector<string> MapObject::GetCuisines() const
{
vector<string> cuisines;
auto const & isCuisine = ftypes::IsCuisineChecker::Instance();
for (auto const t : m_types)
{
if (!isCuisine(t))
continue;
auto const cuisine = classif().GetFullObjectNamePath(t);
CHECK_EQUAL(cuisine.size(), 2, (cuisine));
cuisines.push_back(cuisine[1]);
}
return cuisines;
}
vector<string> MapObject::GetCuisines() const { return feature::GetCuisines(m_types); }

vector<string> MapObject::GetLocalizedCuisines() const
{
vector<string> localized;
auto const & isCuisine = ftypes::IsCuisineChecker::Instance();
for (auto const t : m_types)
{
if (!isCuisine(t))
continue;
localized.push_back(platform::GetLocalizedTypeName(classif().GetReadableObjectName(t)));
}
return localized;
return feature::GetLocalizedCuisines(m_types);
}

string MapObject::FormatCuisines() const { return strings::JoinStrings(GetLocalizedCuisines(), ""); }
Expand Down
3 changes: 3 additions & 0 deletions search/intermediate_result.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,9 @@ void FillDetails(FeatureType & ft, Result::Details & details)
details.m_hotelApproximatePricing = pricingStr;
}

auto const cuisines = feature::GetLocalizedCuisines(feature::TypesHolder(ft));
details.m_cuisine = strings::JoinStrings(cuisines, "");

details.m_isInitialized = true;
}

Expand Down

0 comments on commit 349dea3

Please sign in to comment.