diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2019-01-29 12:56:51 +0300 |
---|---|---|
committer | Aleksey Belousov <beloal@users.noreply.github.com> | 2019-01-30 17:44:06 +0300 |
commit | a69b56582a834b6854f785d33bbf2c21a6a574fa (patch) | |
tree | e9a8b6e1df39db2bba4b03886cd8231b86ca9f06 /partners_api | |
parent | 62529e20025ea6dd7297379d9696de7abbddba2c (diff) |
[core] Added megafon category banner logic
Diffstat (limited to 'partners_api')
-rw-r--r-- | partners_api/megafon_countries.cpp | 43 | ||||
-rw-r--r-- | partners_api/megafon_countries.hpp | 4 |
2 files changed, 40 insertions, 7 deletions
diff --git a/partners_api/megafon_countries.cpp b/partners_api/megafon_countries.cpp index 1be466f3d4..3f78c8a93b 100644 --- a/partners_api/megafon_countries.cpp +++ b/partners_api/megafon_countries.cpp @@ -49,26 +49,55 @@ storage::TCountriesVec const kCountries = { "Ukraine", "United Arab Emirates", }; + +bool IsRussianLocale(std::string const & currentLocale) +{ + return currentLocale.find("ru") != std::string::npos; +} + +bool ContainsCountry(storage::Storage const & storage, storage::TCountriesVec const & countries, + storage::TCountriesVec const & referenceCountries) +{ + for (auto const & c : countries) + { + if (std::find(referenceCountries.cbegin(), referenceCountries.cend(), c) != + referenceCountries.cend()) + { + return true; + } + } + return false; +} } // namespace bool HasMegafonDownloaderBanner(storage::Storage const & storage, std::string const & mwmId, std::string const & currentLocale) { - if (currentLocale.find("ru") == std::string::npos) + if (!IsRussianLocale(currentLocale)) return false; storage::TCountriesVec countries; storage.GetTopmostNodesFor(mwmId, countries); - for (auto const & c : countries) - { - if (std::find(kCountries.cbegin(), kCountries.cend(), c) != kCountries.cend()) - return true; - } - return false; + return ContainsCountry(storage, countries, kCountries); +} + +bool HasMegafonCategoryBanner(storage::Storage const & storage, + storage::TCountriesVec const & countries, + std::string const & currentLocale) +{ + if (!IsRussianLocale(currentLocale)) + return false; + + return ContainsCountry(storage, countries, kCountries); } std::string GetMegafonDownloaderBannerUrl() { return "https://localads.maps.me/redirects/megafon_downloader"; } + +std::string GetMegafonCategoryBannerUrl() +{ + return "https://localads.maps.me/redirects/megafon_search_category"; +} } // namespace ads diff --git a/partners_api/megafon_countries.hpp b/partners_api/megafon_countries.hpp index c1378f73a5..98fb7f530c 100644 --- a/partners_api/megafon_countries.hpp +++ b/partners_api/megafon_countries.hpp @@ -8,5 +8,9 @@ namespace ads { extern bool HasMegafonDownloaderBanner(storage::Storage const & storage, std::string const & mwmId, std::string const & currentLocale); +extern bool HasMegafonCategoryBanner(storage::Storage const & storage, + storage::TCountriesVec const & countries, + std::string const & currentLocale); extern std::string GetMegafonDownloaderBannerUrl(); +extern std::string GetMegafonCategoryBannerUrl(); } // namespace ads |