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>2016-10-19 14:16:49 +0300
committerArsentiy Milchakov <milcars@mapswithme.com>2016-10-21 20:34:02 +0300
commit58d5238d1506e234491440e86d6ffcea5cf345ed (patch)
treeac9611026c6a6c8d64aa91d464c68a34aa7e0a3b
parent6837b685335a30ab3861370926c17436d9e434c3 (diff)
generate opentable URL by using sponsored id
-rwxr-xr-xconfigure.sh1
-rw-r--r--generator/opentable_dataset.cpp1
-rw-r--r--map/framework.cpp11
-rw-r--r--partners_api/booking_api.cpp2
-rw-r--r--partners_api/booking_api.hpp2
-rw-r--r--partners_api/opentable_api.cpp21
-rw-r--r--partners_api/opentable_api.hpp12
-rw-r--r--partners_api/partners_api.pro2
-rw-r--r--partners_api/partners_api_tests/booking_tests.cpp2
9 files changed, 47 insertions, 7 deletions
diff --git a/configure.sh b/configure.sh
index c764b0e5eb..973f91a1dd 100755
--- a/configure.sh
+++ b/configure.sh
@@ -52,6 +52,7 @@ else
#define BOOKING_SECRET ""
#define UBER_SERVER_TOKEN ""
#define UBER_CLIENT_ID ""
+#define OPENTABLE_AFFILATE_ID ""
#define TRACKING_REALTIME_HOST ""
#define TRACKING_REALTIME_PORT 0
#define TRACKING_HISTORICAL_HOST ""
diff --git a/generator/opentable_dataset.cpp b/generator/opentable_dataset.cpp
index 7892444bb0..499a2ef833 100644
--- a/generator/opentable_dataset.cpp
+++ b/generator/opentable_dataset.cpp
@@ -55,7 +55,6 @@ void OpentableDataset::PreprocessMatchedOsmObject(ObjectId const matchedObjId, F
auto restaurant = GetObjectById(matchedObjId);
auto & metadata = params.GetMetadata();
metadata.Set(feature::Metadata::FMD_SPONSORED_ID, strings::to_string(restaurant.m_id.Get()));
- metadata.Set(feature::Metadata::FMD_WEBSITE, restaurant.m_descUrl);
// params.AddAddress(restaurant.address);
// TODO(mgsergio): addr:full ???
diff --git a/map/framework.cpp b/map/framework.cpp
index 2429def14d..42f82a8551 100644
--- a/map/framework.cpp
+++ b/map/framework.cpp
@@ -74,6 +74,8 @@
#include "geometry/rect2d.hpp"
#include "geometry/triangle2d.hpp"
+#include "partners_api/opentable_api.hpp"
+
#include "base/logging.hpp"
#include "base/math.hpp"
#include "base/scope_guard.hpp"
@@ -792,14 +794,17 @@ void Framework::FillInfoFromFeatureType(FeatureType const & ft, place_page::Info
if (ftypes::IsBookingChecker::Instance()(ft))
{
info.m_sponsoredType = SponsoredType::Booking;
- string const & baseUrl = info.GetMetadata().Get(feature::Metadata::FMD_WEBSITE);
- info.m_sponsoredUrl = GetBookingApi().GetBookingUrl(baseUrl);
+ auto const & baseUrl = info.GetMetadata().Get(feature::Metadata::FMD_WEBSITE);
+ info.m_sponsoredUrl = GetBookingApi().GetBookHotelUrl(baseUrl);
info.m_sponsoredDescriptionUrl = GetBookingApi().GetDescriptionUrl(baseUrl);
}
else if (ftypes::IsOpentableChecker::Instance()(ft))
{
info.m_sponsoredType = SponsoredType::Opentable;
- info.m_sponsoredUrl = info.GetMetadata().Get(feature::Metadata::FMD_WEBSITE);
+ auto const & sponsoredId = info.GetMetadata().Get(feature::Metadata::FMD_SPONSORED_ID);
+ auto const & url = opentable::Api::GetBookTableUrl(sponsoredId);
+ info.m_sponsoredUrl = url;
+ info.m_sponsoredDescriptionUrl = url;
}
diff --git a/partners_api/booking_api.cpp b/partners_api/booking_api.cpp
index 6bb2dc1a75..201f2cafbd 100644
--- a/partners_api/booking_api.cpp
+++ b/partners_api/booking_api.cpp
@@ -20,7 +20,7 @@ BookingApi::BookingApi() : m_affiliateId(BOOKING_AFFILIATE_ID), m_testingMode(fa
m_apiUrl = "https://" + ss.str() + "@distribution-xml.booking.com/json/bookings.";
}
-string BookingApi::GetBookingUrl(string const & baseUrl, string const & /* lang */) const
+string BookingApi::GetBookHotelUrl(string const & baseUrl, string const & /* lang */) const
{
return GetDescriptionUrl(baseUrl) + "#availability";
}
diff --git a/partners_api/booking_api.hpp b/partners_api/booking_api.hpp
index 4e92a8ca83..4804fefa7d 100644
--- a/partners_api/booking_api.hpp
+++ b/partners_api/booking_api.hpp
@@ -117,7 +117,7 @@ public:
static constexpr const char kDefaultCurrency[1] = {0};
BookingApi();
- string GetBookingUrl(string const & baseUrl, string const & lang = string()) const;
+ string GetBookHotelUrl(string const & baseUrl, string const & lang = string()) const;
string GetDescriptionUrl(string const & baseUrl, string const & lang = string()) const;
inline void SetTestingMode(bool testing) { m_testingMode = testing; }
diff --git a/partners_api/opentable_api.cpp b/partners_api/opentable_api.cpp
new file mode 100644
index 0000000000..9454cef63b
--- /dev/null
+++ b/partners_api/opentable_api.cpp
@@ -0,0 +1,21 @@
+#include "partners_api/opentable_api.hpp"
+
+#include "std/sstream.hpp"
+
+#include "private.h"
+
+namespace
+{
+ auto const kOpentableBaseUrl = "http://www.opentable.com/restaurant/profile/";
+} // namespace
+
+namespace opentable
+{
+// static
+string Api::GetBookTableUrl(string const & restaurantId)
+{
+ stringstream ss;
+ ss << kOpentableBaseUrl << restaurantId << "?ref=" << OPENTABLE_AFFILATE_ID;
+ return ss.str();
+}
+} // namespace opentable
diff --git a/partners_api/opentable_api.hpp b/partners_api/opentable_api.hpp
new file mode 100644
index 0000000000..b298fafdd7
--- /dev/null
+++ b/partners_api/opentable_api.hpp
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "std/string.hpp"
+
+namespace opentable
+{
+class Api
+{
+public:
+ static string GetBookTableUrl(string const & restaurantId);
+};
+} // namespace opentable
diff --git a/partners_api/partners_api.pro b/partners_api/partners_api.pro
index e49f090dae..47cf571ac3 100644
--- a/partners_api/partners_api.pro
+++ b/partners_api/partners_api.pro
@@ -10,8 +10,10 @@ include($$ROOT_DIR/common.pri)
SOURCES += \
booking_api.cpp \
+ opentable_api.cpp \
uber_api.cpp \
HEADERS += \
booking_api.hpp \
+ opentable_api.hpp \
uber_api.hpp \
diff --git a/partners_api/partners_api_tests/booking_tests.cpp b/partners_api/partners_api_tests/booking_tests.cpp
index 05b28b25ae..86f3fcf54c 100644
--- a/partners_api/partners_api_tests/booking_tests.cpp
+++ b/partners_api/partners_api_tests/booking_tests.cpp
@@ -6,7 +6,7 @@ UNIT_TEST(Booking_SmokeTest)
{
BookingApi api;
- string url = api.GetBookingUrl("http://someurl.com");
+ string url = api.GetBookHotelUrl("http://someurl.com");
TEST(!url.empty(), ());
}