diff options
author | Arsentiy Milchakov <milcars@mapswithme.com> | 2019-05-24 15:18:36 +0300 |
---|---|---|
committer | Roman Kuznetsov <r.kuznetsow@gmail.com> | 2019-05-24 15:47:19 +0300 |
commit | 728aee71801c2125d6c92ef526d24529df24f74d (patch) | |
tree | d662197c08bc2d7becf23e6e112d354f61ed3367 /partners_api | |
parent | 2ea2b0cb3ec323cf15587bc2b2e62109761c4663 (diff) |
[promo_api] small promo format changes
Diffstat (limited to 'partners_api')
-rw-r--r-- | partners_api/partners_api_tests/promo_tests.cpp | 4 | ||||
-rw-r--r-- | partners_api/promo_api.cpp | 21 | ||||
-rw-r--r-- | partners_api/promo_api.hpp | 6 |
3 files changed, 20 insertions, 11 deletions
diff --git a/partners_api/partners_api_tests/promo_tests.cpp b/partners_api/partners_api_tests/promo_tests.cpp index 39758eff8a..3ae44ac350 100644 --- a/partners_api/partners_api_tests/promo_tests.cpp +++ b/partners_api/partners_api_tests/promo_tests.cpp @@ -148,7 +148,7 @@ UNIT_CLASS_TEST(ScopedEyeWithAsyncGuiThread, Promo_GetCityGallery) }); testing::Wait(); - TEST_EQUAL(result.size(), 2, ()); + TEST_EQUAL(result.m_items.size(), 2, ()); } { promo::CityGallery result{}; @@ -160,6 +160,6 @@ UNIT_CLASS_TEST(ScopedEyeWithAsyncGuiThread, Promo_GetCityGallery) }); testing::Wait(); - TEST_EQUAL(result.size(), 2, ()); + TEST_EQUAL(result.m_items.size(), 2, ()); } } diff --git a/partners_api/promo_api.cpp b/partners_api/promo_api.cpp index 104617311b..859bdd4032 100644 --- a/partners_api/promo_api.cpp +++ b/partners_api/promo_api.cpp @@ -50,7 +50,7 @@ void ParseCityGallery(std::string const & src, promo::CityGallery & result) auto const size = json_array_size(dataArray); - result.reserve(size); + result.m_items.reserve(size); for (size_t i = 0; i < size; ++i) { promo::CityGalleryItem item; @@ -73,15 +73,20 @@ void ParseCityGallery(std::string const & src, promo::CityGallery & result) FromJSONObject(authorObj, "name", item.m_author.m_name); auto const luxCategoryObj = json_object_get(obj, "lux_category"); + if (!json_is_null(luxCategoryObj)) + { + auto const luxCategoryNameobj = json_object_get(luxCategoryObj, "name"); + if (!json_is_null(luxCategoryNameobj)) + FromJSON(luxCategoryNameobj, item.m_luxCategory.m_name); - auto const luxCategoryNameobj = json_object_get(luxCategoryObj, "name"); - if (!json_is_null(luxCategoryNameobj)) - FromJSON(luxCategoryNameobj, item.m_luxCategory.m_name); + FromJSONObject(luxCategoryObj, "color", item.m_luxCategory.m_color); + } - FromJSONObject(luxCategoryObj, "color", item.m_luxCategory.m_color); - - result.emplace_back(std::move(item)); + result.m_items.emplace_back(std::move(item)); } + + auto const meta = json_object_get(root.get(), "meta"); + FromJSONObject(meta, "more", result.m_moreUrl); } std::string MakeCityGalleryUrl(std::string const & baseUrl, std::string const & id, @@ -111,7 +116,7 @@ void GetPromoCityGalleryImpl(std::string const & baseUrl, std::string const & id catch (base::Json::Exception const & e) { LOG(LERROR, (e.Msg())); - result.clear(); + result.m_items.clear(); } cb(std::move(result)); diff --git a/partners_api/promo_api.hpp b/partners_api/promo_api.hpp index 61da4e17d0..f79c390296 100644 --- a/partners_api/promo_api.hpp +++ b/partners_api/promo_api.hpp @@ -34,7 +34,11 @@ struct CityGalleryItem LuxCategory m_luxCategory; }; -using CityGallery = std::vector<CityGalleryItem>; +struct CityGallery +{ + std::string m_moreUrl; + std::vector<CityGalleryItem> m_items; +}; class WebApi { |