From d453020056b0b5f3e157eb17e7a819c43531653f Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Thu, 18 May 2017 15:57:08 +0300 Subject: [PATCH] Added campaign data version to URL --- local_ads/campaign_serialization.cpp | 10 +--------- local_ads/campaign_serialization.hpp | 8 ++++++++ .../local_ads_tests/campaign_serialization_test.cpp | 8 ++++---- map/local_ads_manager.cpp | 5 ++++- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/local_ads/campaign_serialization.cpp b/local_ads/campaign_serialization.cpp index 750bf134d4..2b43c093eb 100644 --- a/local_ads/campaign_serialization.cpp +++ b/local_ads/campaign_serialization.cpp @@ -11,14 +11,6 @@ namespace { -enum class Version -{ - unknown = -1, - v1 = 0, // March 2017 (Store feature ids and icon ids as varints, - // use one byte for days before expiration.) - latest = v1 -}; - template constexpr bool IsEnumOrIntegral() { @@ -103,7 +95,7 @@ std::vector Deserialize(std::vector const & bytes) featureIds[i], icons[i], expirations[i], - false /* priorityBit */ + true /* priorityBit */ ); } return campaigns; diff --git a/local_ads/campaign_serialization.hpp b/local_ads/campaign_serialization.hpp index ab30cfcb74..a73b78b6ed 100644 --- a/local_ads/campaign_serialization.hpp +++ b/local_ads/campaign_serialization.hpp @@ -7,6 +7,14 @@ namespace local_ads { +enum class Version +{ + unknown = -1, + v1 = 0, // March 2017 (Store feature ids and icon ids as varints, + // use one byte for days before expiration.) + latest = v1 +}; + std::vector Serialize(std::vector const & campaigns); std::vector Deserialize(std::vector const & bytes); } // namespace local_ads diff --git a/local_ads/local_ads_tests/campaign_serialization_test.cpp b/local_ads/local_ads_tests/campaign_serialization_test.cpp index a2088f2f1d..5479fa5021 100644 --- a/local_ads/local_ads_tests/campaign_serialization_test.cpp +++ b/local_ads/local_ads_tests/campaign_serialization_test.cpp @@ -29,7 +29,7 @@ std::vector GenerateRandomCampaigns(size_t number) auto const fid = featureIds(gen); auto const iconid = icons(gen); auto const days = expirationDays(gen); - cs.emplace_back(fid, iconid, days, false /* priorityBit */); + cs.emplace_back(fid, iconid, days, true /* priorityBit */); } return cs; } @@ -38,9 +38,9 @@ std::vector GenerateRandomCampaigns(size_t number) UNIT_TEST(Serialization_Smoke) { TEST(TestSerialization({ - {10, 10, 10, 0}, - {1000, 100, 20, 0}, - {120003, 456, 15, 0} + {10, 10, 10, true}, + {1000, 100, 20, true}, + {120003, 456, 15, true} }), ()); TEST(TestSerialization(GenerateRandomCampaigns(100)), ()); diff --git a/map/local_ads_manager.cpp b/map/local_ads_manager.cpp index af26f31278..acd5526c83 100644 --- a/map/local_ads_manager.cpp +++ b/map/local_ads_manager.cpp @@ -79,7 +79,10 @@ std::string MakeCampaignDownloadingURL(MwmSet::MwmId const & mwmId) return {}; std::ostringstream ss; - ss << kServerUrl << "/" << mwmId.GetInfo()->GetVersion() << "/" + auto const campaignDataVersion = static_cast(local_ads::Version::latest); + ss << kServerUrl << "/" + << campaignDataVersion << "/" + << mwmId.GetInfo()->GetVersion() << "/" << UrlEncode(mwmId.GetInfo()->GetCountryName()) << ".ads"; return ss.str(); }