Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArsentiy Milchakov <milcars@mapswithme.com>2019-06-11 13:15:17 +0300
committerTatiana Yan <tatiana.kondakova@gmail.com>2019-06-13 16:15:51 +0300
commit68c33fc33a63aedb11535918f7d109f3298d85fc (patch)
treee4576263e6405ad5eb5a86f2a41882046c6fe7a0 /partners_api
parent580839ff032f40434864e3ecdc95ee9b66fd0c0e (diff)
[promo][storage] Load promo city ids from countries.txt
Diffstat (limited to 'partners_api')
-rw-r--r--partners_api/downloader_promo.cpp18
-rw-r--r--partners_api/downloader_promo.hpp14
-rw-r--r--partners_api/partners_api_tests/promo_tests.cpp5
-rw-r--r--partners_api/promo_api.cpp28
-rw-r--r--partners_api/promo_api.hpp11
5 files changed, 51 insertions, 25 deletions
diff --git a/partners_api/downloader_promo.cpp b/partners_api/downloader_promo.cpp
index df887e7208..acad44b48e 100644
--- a/partners_api/downloader_promo.cpp
+++ b/partners_api/downloader_promo.cpp
@@ -1,19 +1,31 @@
#include "partners_api/downloader_promo.hpp"
#include "partners_api/megafon_countries.hpp"
+#include "partners_api/promo_api.hpp"
+
+#include "storage/storage.hpp"
+
+#include "base/string_utils.hpp"
namespace promo
{
// static
DownloaderPromo::Banner DownloaderPromo::GetBanner(storage::Storage const & storage,
- std::string const & mwmId,
+ Api const & promoApi, std::string const & mwmId,
std::string const & currentLocale,
bool hasRemoveAdsSubscription)
{
if (!hasRemoveAdsSubscription && ads::HasMegafonDownloaderBanner(storage, mwmId, currentLocale))
- return {DownloaderPromo::Type::Megafon, ads::GetMegafonDownloaderBannerUrl()};
+ return {Type::Megafon, ads::GetMegafonDownloaderBannerUrl()};
+
+ auto const & cities = storage.GetPromoCatalogCities();
+ auto const it = cities.find(mwmId);
- // TODO: add bookmark catalog banner.
+ if (it != cities.cend())
+ {
+ auto const id = strings::to_string(it->second.GetEncodedId());
+ return {Type::BookmarkCatalog, promoApi.GetPromoLinkForDownloader(id, currentLocale)};
+ }
return {};
}
diff --git a/partners_api/downloader_promo.hpp b/partners_api/downloader_promo.hpp
index 74d680bfcb..7225decda7 100644
--- a/partners_api/downloader_promo.hpp
+++ b/partners_api/downloader_promo.hpp
@@ -1,12 +1,17 @@
#pragma once
-#include "storage/storage.hpp"
-
#include <cstdint>
#include <string>
+namespace storage
+{
+class Storage;
+}
+
namespace promo
{
+class Api;
+
class DownloaderPromo
{
public:
@@ -30,7 +35,8 @@ public:
std::string m_url;
};
- static Banner GetBanner(storage::Storage const & storage, std::string const & mwmId,
- std::string const & currentLocale, bool hasRemoveAdsSubscription);
+ static Banner GetBanner(storage::Storage const & storage, Api const & promoApi,
+ std::string const & mwmId, std::string const & currentLocale,
+ bool hasRemoveAdsSubscription);
};
} // namespace promo
diff --git a/partners_api/partners_api_tests/promo_tests.cpp b/partners_api/partners_api_tests/promo_tests.cpp
index 0492495a07..abe47cde64 100644
--- a/partners_api/partners_api_tests/promo_tests.cpp
+++ b/partners_api/partners_api_tests/promo_tests.cpp
@@ -138,10 +138,11 @@ UNIT_CLASS_TEST(ScopedEyeWithAsyncGuiThread, Promo_GetCityGallery)
{
promo::Api api("http://localhost:34568/");
api.SetDelegate(std::make_unique<DelegateForTesting>());
+ auto const lang = "en";
{
promo::CityGallery result{};
- api.GetCityGallery(kTestId, [&result](promo::CityGallery const & gallery)
+ api.GetCityGallery(kTestId, lang, [&result](promo::CityGallery const & gallery)
{
result = gallery;
testing::Notify();
@@ -157,7 +158,7 @@ UNIT_CLASS_TEST(ScopedEyeWithAsyncGuiThread, Promo_GetCityGallery)
{
promo::CityGallery result{};
m2::PointD pt;
- api.GetCityGallery(pt, [&result](promo::CityGallery const & gallery)
+ api.GetCityGallery(pt, lang, [&result](promo::CityGallery const & gallery)
{
result = gallery;
testing::Notify();
diff --git a/partners_api/promo_api.cpp b/partners_api/promo_api.cpp
index b138d1ad39..56987681b2 100644
--- a/partners_api/promo_api.cpp
+++ b/partners_api/promo_api.cpp
@@ -101,7 +101,8 @@ std::string MakeCityGalleryUrl(std::string const & baseUrl, std::string const &
}
void GetPromoCityGalleryImpl(std::string const & baseUrl, std::string const & id,
- CityGalleryCallback const & onSuccess, OnError const & onError)
+ std::string const & lang, CityGalleryCallback const & onSuccess,
+ OnError const & onError)
{
ASSERT(!baseUrl.empty(), ());
ASSERT_EQUAL(baseUrl.back(), '/', ());
@@ -112,13 +113,13 @@ void GetPromoCityGalleryImpl(std::string const & baseUrl, std::string const & id
return;
}
- GetPlatform().RunTask(Platform::Thread::Network, [baseUrl, id, onSuccess, onError]()
+ GetPlatform().RunTask(Platform::Thread::Network, [baseUrl, id, lang, onSuccess, onError]()
{
ASSERT(!id.empty(), ());
CityGallery result;
std::string httpResult;
- if (!WebApi::GetCityGalleryById(baseUrl, id, languages::GetCurrentNorm(), httpResult))
+ if (!WebApi::GetCityGalleryById(baseUrl, id, lang, httpResult))
{
onError();
return;
@@ -183,28 +184,33 @@ bool Api::NeedToShowAfterBooking() const
return NeedToShowImpl(m_bookingPromoAwaitingForId, eye::Eye::Instance().GetInfo());
}
-std::string Api::GetPromoLinkAfterBooking() const
+std::string Api::GetPromoLinkAfterBooking(std::string const & lang) const
{
auto const eyeInfo = eye::Eye::Instance().GetInfo();
if (!NeedToShowImpl(m_bookingPromoAwaitingForId, eyeInfo))
return "";
- return MakeCityGalleryUrl(m_baseUrl, m_bookingPromoAwaitingForId, languages::GetCurrentNorm());
+ return MakeCityGalleryUrl(m_baseUrl, m_bookingPromoAwaitingForId, lang);
}
-void Api::GetCityGallery(std::string const & id, CityGalleryCallback const & onSuccess,
- OnError const & onError) const
+std::string Api::GetPromoLinkForDownloader(std::string const & id, std::string const & lang) const
{
- GetPromoCityGalleryImpl(m_baseUrl, id, onSuccess, onError);
+ return MakeCityGalleryUrl(m_baseUrl, id, lang);
}
-void Api::GetCityGallery(m2::PointD const & point, CityGalleryCallback const & onSuccess,
- OnError const & onError) const
+void Api::GetCityGallery(std::string const & id, std::string const & lang,
+ CityGalleryCallback const & onSuccess, OnError const & onError) const
+{
+ GetPromoCityGalleryImpl(m_baseUrl, id, lang, onSuccess, onError);
+}
+
+void Api::GetCityGallery(m2::PointD const & point, std::string const & lang,
+ CityGalleryCallback const & onSuccess, OnError const & onError) const
{
CHECK(m_delegate, ());
- GetPromoCityGalleryImpl(m_baseUrl, m_delegate->GetCityId(point), onSuccess, onError);
+ GetPromoCityGalleryImpl(m_baseUrl, m_delegate->GetCityId(point), lang, onSuccess, onError);
}
void Api::OnMapObjectEvent(eye::MapObject const & mapObject)
diff --git a/partners_api/promo_api.hpp b/partners_api/promo_api.hpp
index ff9bd23f9c..33f20941cd 100644
--- a/partners_api/promo_api.hpp
+++ b/partners_api/promo_api.hpp
@@ -68,11 +68,12 @@ public:
void SetDelegate(std::unique_ptr<Delegate> delegate);
void OnEnterForeground();
bool NeedToShowAfterBooking() const;
- std::string GetPromoLinkAfterBooking() const;
- void GetCityGallery(std::string const & id, CityGalleryCallback const & onSuccess,
- OnError const & onError) const;
- void GetCityGallery(m2::PointD const & point, CityGalleryCallback const & onSuccess,
- OnError const & onError) const;
+ std::string GetPromoLinkAfterBooking(std::string const & lang) const;
+ std::string GetPromoLinkForDownloader(std::string const & id, std::string const & lang) const;
+ void GetCityGallery(std::string const & id, std::string const & lang,
+ CityGalleryCallback const & onSuccess, OnError const & onError) const;
+ void GetCityGallery(m2::PointD const & point, std::string const & lang,
+ CityGalleryCallback const & onSuccess, OnError const & onError) const;
// eye::Subscriber overrides:
void OnMapObjectEvent(eye::MapObject const & poi) override;