forked from organicmaps/organicmaps
[partners_api] booking api small changes
This commit is contained in:
parent
b6c9614c3a
commit
f886bd939a
10 changed files with 127 additions and 90 deletions
|
@ -11,8 +11,8 @@ set(
|
|||
banner.hpp
|
||||
booking_api.cpp
|
||||
booking_api.hpp
|
||||
booking_http.cpp
|
||||
booking_http.hpp
|
||||
booking_availability_params.cpp
|
||||
booking_availability_params.hpp
|
||||
cian_api.cpp
|
||||
cian_api.hpp
|
||||
facebook_ads.cpp
|
||||
|
@ -37,6 +37,7 @@ set(
|
|||
taxi_provider.hpp
|
||||
uber_api.cpp
|
||||
uber_api.hpp
|
||||
utils.cpp
|
||||
utils.hpp
|
||||
viator_api.cpp
|
||||
viator_api.hpp
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include "partners_api/booking_api.hpp"
|
||||
#include "partners_api/utils.hpp"
|
||||
|
||||
#include "platform/http_client.hpp"
|
||||
#include "platform/platform.hpp"
|
||||
|
||||
#include "coding/url_encode.hpp"
|
||||
|
@ -9,6 +11,7 @@
|
|||
#include "base/thread.hpp"
|
||||
#include "base/url_helpers.hpp"
|
||||
|
||||
#include <chrono>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <utility>
|
||||
|
@ -19,7 +22,7 @@
|
|||
|
||||
using namespace base;
|
||||
using namespace booking;
|
||||
using namespace booking::http;
|
||||
using namespace platform;
|
||||
using namespace std;
|
||||
using namespace std::chrono;
|
||||
|
||||
|
@ -33,6 +36,21 @@ string const kPhotoSmallUrl = "http://aff.bstatic.com/images/hotel/max300/";
|
|||
string const kSearchBaseUrl = "https://www.booking.com/search.html";
|
||||
string g_BookingUrlForTesting = "";
|
||||
|
||||
bool RunSimpleHttpRequest(bool const needAuth, string const & url, string & result)
|
||||
{
|
||||
HttpClient request(url);
|
||||
|
||||
if (needAuth)
|
||||
request.SetUserAndPassword(BOOKING_KEY, BOOKING_SECRET);
|
||||
|
||||
return request.RunHttpRequest(result);
|
||||
}
|
||||
|
||||
std::string FormatTime(system_clock::time_point p)
|
||||
{
|
||||
return partners_api::FormatTime(p, "%Y-%m-%d");
|
||||
}
|
||||
|
||||
string MakeApiUrlV1(string const & func, url::Params const & params)
|
||||
{
|
||||
if (!g_BookingUrlForTesting.empty())
|
||||
|
@ -214,7 +232,7 @@ void FillPriceAndCurrency(string const & src, string const & currency, string &
|
|||
}
|
||||
}
|
||||
|
||||
void FillHotelIds(string const & src, vector<uint64_t> & result)
|
||||
void FillHotelIds(string const & src, vector<std::string> & result)
|
||||
{
|
||||
my::Json root(src.c_str());
|
||||
auto const resultsArray = json_object_get(root.get(), "result");
|
||||
|
@ -225,7 +243,9 @@ void FillHotelIds(string const & src, vector<uint64_t> & result)
|
|||
for (size_t i = 0; i < size; ++i)
|
||||
{
|
||||
auto const obj = json_array_get(resultsArray, i);
|
||||
FromJSONObject(obj, "hotel_id", result[i]);
|
||||
uint64_t id = 0;
|
||||
FromJSONObject(obj, "hotel_id", id);
|
||||
result[i] = std::to_string(id);
|
||||
}
|
||||
}
|
||||
} // namespace
|
||||
|
@ -299,7 +319,8 @@ string Api::GetSearchUrl(string const & city, string const & name) const
|
|||
return resultStream.str();
|
||||
}
|
||||
|
||||
void Api::GetMinPrice(string const & hotelId, string const & currency, GetMinPriceCallback const & fn)
|
||||
void Api::GetMinPrice(string const & hotelId, string const & currency,
|
||||
GetMinPriceCallback const & fn) const
|
||||
{
|
||||
GetPlatform().RunOnNetworkThread([hotelId, currency, fn]()
|
||||
{
|
||||
|
@ -326,7 +347,8 @@ void Api::GetMinPrice(string const & hotelId, string const & currency, GetMinPri
|
|||
});
|
||||
}
|
||||
|
||||
void Api::GetHotelInfo(string const & hotelId, string const & lang, GetHotelInfoCallback const & fn)
|
||||
void Api::GetHotelInfo(string const & hotelId, string const & lang,
|
||||
GetHotelInfoCallback const & fn) const
|
||||
{
|
||||
GetPlatform().RunOnNetworkThread([hotelId, lang, fn]()
|
||||
{
|
||||
|
@ -355,15 +377,15 @@ void Api::GetHotelInfo(string const & hotelId, string const & lang, GetHotelInfo
|
|||
}
|
||||
|
||||
void Api::GetHotelAvailability(AvailabilityParams const & params,
|
||||
GetHotelAvailabilityCallback const & fn)
|
||||
GetHotelAvailabilityCallback const & fn) const
|
||||
{
|
||||
GetPlatform().RunOnNetworkThread([params, fn]()
|
||||
{
|
||||
std::vector<uint64_t> result;
|
||||
std::vector<std::string> result;
|
||||
string httpResult;
|
||||
if (!RawApi::HotelAvailability(params, httpResult))
|
||||
{
|
||||
fn(result);
|
||||
fn(std::move(result));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -377,7 +399,7 @@ void Api::GetHotelAvailability(AvailabilityParams const & params,
|
|||
result.clear();
|
||||
}
|
||||
|
||||
fn(result);
|
||||
fn(std::move(result));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include "partners_api/booking_http.hpp"
|
||||
#include "partners_api/booking_availability_params.hpp"
|
||||
|
||||
#include "platform/safe_callback.hpp"
|
||||
|
||||
|
@ -55,13 +55,16 @@ public:
|
|||
static bool GetHotelAvailability(std::string const & hotelId, std::string const & currency, std::string & result);
|
||||
static bool GetExtendedInfo(std::string const & hotelId, std::string const & lang, std::string & result);
|
||||
// Booking Api v2 methods:
|
||||
static bool HotelAvailability(http::AvailabilityParams const & params, std::string & result);
|
||||
static bool HotelAvailability(AvailabilityParams const & params, std::string & result);
|
||||
};
|
||||
|
||||
using GetMinPriceCallback = platform::SafeCallback<void(std::string const & hotelId, std::string const & price, std::string const & currency)>;
|
||||
using GetHotelInfoCallback = platform::SafeCallback<void(HotelInfo const & hotelInfo)>;
|
||||
using GetHotelAvailabilityCallback = platform::SafeCallback<void(std::vector<uint64_t> hotelIds)>;
|
||||
// NOTE: this callback will be called NOT on main thread.
|
||||
using GetHotelAvailabilityCallback = std::function<void(std::vector<std::string> hotelIds)>;
|
||||
|
||||
/// Guarantees the preservation of the sequence of calls callbacks in accordance with
|
||||
/// the sequence of method calls.
|
||||
class Api
|
||||
{
|
||||
public:
|
||||
|
@ -72,14 +75,17 @@ public:
|
|||
|
||||
/// Real-time information methods (used for retrieving rapidly changing information).
|
||||
/// These methods send requests directly to Booking.
|
||||
void GetMinPrice(std::string const & hotelId, std::string const & currency, GetMinPriceCallback const & fn);
|
||||
void GetMinPrice(std::string const & hotelId, std::string const & currency,
|
||||
GetMinPriceCallback const & fn) const;
|
||||
|
||||
/// NOTE: callback will be called NOT on main thread.
|
||||
void GetHotelAvailability(AvailabilityParams const & params,
|
||||
GetHotelAvailabilityCallback const & fn) const;
|
||||
|
||||
/// Static information methods (use for information that can be cached).
|
||||
/// These methods use caching server to prevent Booking from being ddossed.
|
||||
void GetHotelInfo(std::string const & hotelId, std::string const & lang, GetHotelInfoCallback const & fn);
|
||||
|
||||
void GetHotelAvailability(http::AvailabilityParams const & params,
|
||||
GetHotelAvailabilityCallback const & fn);
|
||||
void GetHotelInfo(std::string const & hotelId, std::string const & lang,
|
||||
GetHotelInfoCallback const & fn) const;
|
||||
};
|
||||
|
||||
void SetBookingUrlForTesting(std::string const & url);
|
||||
|
|
|
@ -1,41 +1,22 @@
|
|||
#include "partners_api/booking_http.hpp"
|
||||
|
||||
#include "platform/http_client.hpp"
|
||||
#include "partners_api/booking_availability_params.hpp"
|
||||
#include "partners_api/utils.hpp"
|
||||
|
||||
#include "base/string_utils.hpp"
|
||||
|
||||
#include <ctime>
|
||||
#include <iomanip>
|
||||
|
||||
#include "private.h"
|
||||
|
||||
using namespace base::url;
|
||||
using namespace platform;
|
||||
using namespace std;
|
||||
using namespace std::chrono;
|
||||
|
||||
namespace
|
||||
{
|
||||
std::string FormatTime(booking::AvailabilityParams::Time p)
|
||||
{
|
||||
return partners_api::FormatTime(p, "%Y-%m-%d");
|
||||
}
|
||||
} // namespace
|
||||
|
||||
namespace booking
|
||||
{
|
||||
namespace http
|
||||
{
|
||||
bool RunSimpleHttpRequest(bool const needAuth, string const & url, string & result)
|
||||
{
|
||||
HttpClient request(url);
|
||||
|
||||
if (needAuth)
|
||||
request.SetUserAndPassword(BOOKING_KEY, BOOKING_SECRET);
|
||||
|
||||
return request.RunHttpRequest(result);
|
||||
}
|
||||
|
||||
string FormatTime(Time p)
|
||||
{
|
||||
time_t t = duration_cast<seconds>(p.time_since_epoch()).count();
|
||||
ostringstream os;
|
||||
os << put_time(gmtime(&t), "%Y-%m-%d");
|
||||
return os.str();
|
||||
}
|
||||
|
||||
Params AvailabilityParams::Get() const
|
||||
{
|
||||
Params result;
|
||||
|
@ -55,5 +36,9 @@ Params AvailabilityParams::Get() const
|
|||
|
||||
return result;
|
||||
}
|
||||
} // namespace http
|
||||
|
||||
bool AvailabilityParams::IsEmpty() const
|
||||
{
|
||||
return m_checkin == Time() || m_checkout == Time() || m_rooms.empty();
|
||||
}
|
||||
} // namespace booking
|
|
@ -8,22 +8,17 @@
|
|||
|
||||
namespace booking
|
||||
{
|
||||
namespace http
|
||||
{
|
||||
bool RunSimpleHttpRequest(bool const needAuth, std::string const & url, std::string & result);
|
||||
|
||||
using Time = std::chrono::system_clock::time_point;
|
||||
using Hotels = std::vector<std::string>;
|
||||
using Rooms = std::vector<std::string>;
|
||||
using Stars = std::vector<std::string>;
|
||||
|
||||
std::string FormatTime(Time p);
|
||||
|
||||
/// Params for checking availability of hotels.
|
||||
/// [m_hotelIds], [m_checkin], [m_checkout], [m_rooms] are required.
|
||||
struct AvailabilityParams
|
||||
{
|
||||
using Time = std::chrono::system_clock::time_point;
|
||||
using Hotels = std::vector<std::string>;
|
||||
using Rooms = std::vector<std::string>;
|
||||
using Stars = std::vector<std::string>;
|
||||
|
||||
base::url::Params Get() const;
|
||||
bool IsEmpty() const;
|
||||
|
||||
/// Limit the result list to the specified hotels where they have availability for the
|
||||
/// specified guests and dates.
|
||||
|
@ -44,5 +39,4 @@ struct AvailabilityParams
|
|||
/// Limit to hotels with the given number(s) of stars. Supported values 1-5.
|
||||
Stars m_stars;
|
||||
};
|
||||
} // namespace http
|
||||
} // namespace booking
|
|
@ -12,7 +12,7 @@ SOURCES += \
|
|||
ads_base.cpp \
|
||||
ads_engine.cpp \
|
||||
booking_api.cpp \
|
||||
booking_http.cpp \
|
||||
booking_availability_params.cpp \
|
||||
cian_api.cpp \
|
||||
facebook_ads.cpp \
|
||||
google_ads.cpp \
|
||||
|
@ -24,6 +24,7 @@ SOURCES += \
|
|||
taxi_countries.cpp \
|
||||
taxi_engine.cpp \
|
||||
uber_api.cpp \
|
||||
utils.cpp \
|
||||
viator_api.cpp \
|
||||
yandex_api.cpp \
|
||||
|
||||
|
@ -32,7 +33,7 @@ HEADERS += \
|
|||
ads_engine.hpp \
|
||||
banner.hpp \
|
||||
booking_api.hpp \
|
||||
booking_http.hpp \
|
||||
booking_availability_params.hpp
|
||||
cian_api.hpp \
|
||||
facebook_ads.hpp \
|
||||
google_ads.hpp \
|
||||
|
|
|
@ -4,13 +4,10 @@
|
|||
|
||||
#include "partners_api/booking_api.hpp"
|
||||
|
||||
#include "base/scope_guard.hpp"
|
||||
|
||||
#include <chrono>
|
||||
|
||||
using namespace partners_api;
|
||||
using namespace booking;
|
||||
using namespace booking::http;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
@ -143,15 +140,15 @@ UNIT_CLASS_TEST(AsyncGuiThread, GetHotelInfo)
|
|||
UNIT_CLASS_TEST(AsyncGuiThreadBooking, GetHotelAvailability)
|
||||
{
|
||||
AvailabilityParams params;
|
||||
params.m_hotelIds = {"77615", "10623"};
|
||||
params.m_hotelIds = {"0"}; // Internal hotel id for testing.
|
||||
params.m_rooms = {"A,A"};
|
||||
params.m_checkin = std::chrono::system_clock::now() + std::chrono::hours(24);
|
||||
params.m_checkout = std::chrono::system_clock::now() + std::chrono::hours(24 * 7);
|
||||
params.m_stars = {"4"};
|
||||
Api api;
|
||||
std::vector<uint64_t> result;
|
||||
std::vector<std::string> result;
|
||||
|
||||
api.GetHotelAvailability(params, [&result](std::vector<uint64_t> const & r)
|
||||
api.GetHotelAvailability(params, [&result](std::vector<std::string> const & r)
|
||||
{
|
||||
result = r;
|
||||
testing::Notify();
|
||||
|
@ -159,8 +156,8 @@ UNIT_CLASS_TEST(AsyncGuiThreadBooking, GetHotelAvailability)
|
|||
testing::Wait();
|
||||
|
||||
TEST_EQUAL(result.size(), 3, ());
|
||||
TEST_EQUAL(result[0], 10623, ());
|
||||
TEST_EQUAL(result[1], 10624, ());
|
||||
TEST_EQUAL(result[2], 10625, ());
|
||||
TEST_EQUAL(result[0], "10623", ());
|
||||
TEST_EQUAL(result[1], "10624", ());
|
||||
TEST_EQUAL(result[2], "10625", ());
|
||||
}
|
||||
}
|
||||
|
|
33
partners_api/utils.cpp
Normal file
33
partners_api/utils.cpp
Normal file
|
@ -0,0 +1,33 @@
|
|||
#include "partners_api/utils.hpp"
|
||||
|
||||
#include <ctime>
|
||||
#include <iomanip>
|
||||
#include <sstream>
|
||||
|
||||
using namespace std;
|
||||
using namespace std::chrono;
|
||||
|
||||
namespace partners_api
|
||||
{
|
||||
namespace http
|
||||
{
|
||||
Result RunSimpleRequest(std::string const & url)
|
||||
{
|
||||
platform::HttpClient request(url);
|
||||
bool result = false;
|
||||
|
||||
if (request.RunHttpRequest() && !request.WasRedirected() && request.ErrorCode() == 200)
|
||||
result = true;
|
||||
|
||||
return {result, request.ErrorCode(), request.ServerResponse()};
|
||||
}
|
||||
} // namespace http
|
||||
|
||||
string FormatTime(system_clock::time_point p, string const & format)
|
||||
{
|
||||
time_t t = duration_cast<seconds>(p.time_since_epoch()).count();
|
||||
ostringstream os;
|
||||
os << put_time(gmtime(&t), format.c_str());
|
||||
return os.str();
|
||||
}
|
||||
} // namespace partners_api
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include "platform/http_client.hpp"
|
||||
|
||||
#include <chrono>
|
||||
#include <string>
|
||||
|
||||
namespace partners_api
|
||||
|
@ -22,15 +23,8 @@ struct Result
|
|||
std::string m_data;
|
||||
};
|
||||
|
||||
inline Result RunSimpleRequest(std::string const & url)
|
||||
{
|
||||
platform::HttpClient request(url);
|
||||
bool result = false;
|
||||
|
||||
if (request.RunHttpRequest() && !request.WasRedirected() && request.ErrorCode() == 200)
|
||||
result = true;
|
||||
|
||||
return {result, request.ErrorCode(), request.ServerResponse()};
|
||||
}
|
||||
Result RunSimpleRequest(std::string const & url);
|
||||
} // namespace http
|
||||
|
||||
std::string FormatTime(std::chrono::system_clock::time_point p, std::string const & format);
|
||||
} // namespace partners_api
|
||||
|
|
|
@ -19,8 +19,6 @@
|
|||
3488B0371E9D11860068AFD8 /* ads_engine_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 346E889D1E9D088200D4CE9B /* ads_engine_tests.cpp */; };
|
||||
3488B0381E9D11890068AFD8 /* rb_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 346E889E1E9D088200D4CE9B /* rb_tests.cpp */; };
|
||||
3488B0391E9D118D0068AFD8 /* facebook_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3DBC1C501E4B14810016897F /* facebook_tests.cpp */; };
|
||||
3D3731EF1F98A7AF00D2121B /* booking_http.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D3731ED1F98A7AF00D2121B /* booking_http.cpp */; };
|
||||
3D3731F01F98A7AF00D2121B /* booking_http.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D3731EE1F98A7AF00D2121B /* booking_http.hpp */; };
|
||||
3D452AEF1EE6D202009EAB9B /* google_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D452AED1EE6D202009EAB9B /* google_tests.cpp */; };
|
||||
3D452AF01EE6D202009EAB9B /* mopub_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D452AEE1EE6D202009EAB9B /* mopub_tests.cpp */; };
|
||||
3D452AF31EE6D20D009EAB9B /* google_ads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D452AF11EE6D20D009EAB9B /* google_ads.cpp */; };
|
||||
|
@ -33,6 +31,9 @@
|
|||
3D47B2AD1F14BE89000828D2 /* cian_api.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D47B2AB1F14BE89000828D2 /* cian_api.hpp */; };
|
||||
3D47B2AF1F14BE94000828D2 /* cian_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D47B2AE1F14BE94000828D2 /* cian_tests.cpp */; };
|
||||
3D47B2B11F14FA14000828D2 /* utils.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D47B2B01F14FA14000828D2 /* utils.hpp */; };
|
||||
3D4E997C1FB439260025B48C /* booking_availability_params.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D4E997A1FB439260025B48C /* booking_availability_params.hpp */; };
|
||||
3D4E997D1FB439260025B48C /* booking_availability_params.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D4E997B1FB439260025B48C /* booking_availability_params.cpp */; };
|
||||
3D4E997F1FB439300025B48C /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D4E997E1FB439300025B48C /* utils.cpp */; };
|
||||
3D7815761F3A14910068B6AC /* async_gui_thread.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D7815751F3A14910068B6AC /* async_gui_thread.hpp */; };
|
||||
3DBC1C541E4B14920016897F /* facebook_ads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3DBC1C521E4B14920016897F /* facebook_ads.cpp */; };
|
||||
3DBC1C551E4B14920016897F /* facebook_ads.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3DBC1C531E4B14920016897F /* facebook_ads.hpp */; };
|
||||
|
@ -82,8 +83,6 @@
|
|||
346E889E1E9D088200D4CE9B /* rb_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rb_tests.cpp; sourceTree = "<group>"; };
|
||||
3475E0E11DBF581B004C7E69 /* common-debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "common-debug.xcconfig"; path = "../common-debug.xcconfig"; sourceTree = "<group>"; };
|
||||
3475E0E21DBF581B004C7E69 /* common-release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "common-release.xcconfig"; path = "../common-release.xcconfig"; sourceTree = "<group>"; };
|
||||
3D3731ED1F98A7AF00D2121B /* booking_http.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = booking_http.cpp; sourceTree = "<group>"; };
|
||||
3D3731EE1F98A7AF00D2121B /* booking_http.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = booking_http.hpp; sourceTree = "<group>"; };
|
||||
3D452AED1EE6D202009EAB9B /* google_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = google_tests.cpp; sourceTree = "<group>"; };
|
||||
3D452AEE1EE6D202009EAB9B /* mopub_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mopub_tests.cpp; sourceTree = "<group>"; };
|
||||
3D452AF11EE6D20D009EAB9B /* google_ads.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = google_ads.cpp; sourceTree = "<group>"; };
|
||||
|
@ -97,6 +96,9 @@
|
|||
3D47B2AB1F14BE89000828D2 /* cian_api.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cian_api.hpp; sourceTree = "<group>"; };
|
||||
3D47B2AE1F14BE94000828D2 /* cian_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cian_tests.cpp; sourceTree = "<group>"; };
|
||||
3D47B2B01F14FA14000828D2 /* utils.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = utils.hpp; sourceTree = "<group>"; };
|
||||
3D4E997A1FB439260025B48C /* booking_availability_params.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = booking_availability_params.hpp; sourceTree = "<group>"; };
|
||||
3D4E997B1FB439260025B48C /* booking_availability_params.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = booking_availability_params.cpp; sourceTree = "<group>"; };
|
||||
3D4E997E1FB439300025B48C /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = utils.cpp; sourceTree = "<group>"; };
|
||||
3D7815751F3A14910068B6AC /* async_gui_thread.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = async_gui_thread.hpp; sourceTree = "<group>"; };
|
||||
3DBC1C501E4B14810016897F /* facebook_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = facebook_tests.cpp; sourceTree = "<group>"; };
|
||||
3DBC1C521E4B14920016897F /* facebook_ads.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = facebook_ads.cpp; sourceTree = "<group>"; };
|
||||
|
@ -185,8 +187,9 @@
|
|||
F6B5363B1DA520B20067EEA5 /* partners_api */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3D3731ED1F98A7AF00D2121B /* booking_http.cpp */,
|
||||
3D3731EE1F98A7AF00D2121B /* booking_http.hpp */,
|
||||
3D4E997E1FB439300025B48C /* utils.cpp */,
|
||||
3D4E997B1FB439260025B48C /* booking_availability_params.cpp */,
|
||||
3D4E997A1FB439260025B48C /* booking_availability_params.hpp */,
|
||||
BB1956E41F543D7B003ECE6C /* locals_api.cpp */,
|
||||
BB1956E51F543D7C003ECE6C /* locals_api.hpp */,
|
||||
3D47B2B01F14FA14000828D2 /* utils.hpp */,
|
||||
|
@ -296,8 +299,8 @@
|
|||
3DFEBF9F1EFBFC1500317D5C /* yandex_api.hpp in Headers */,
|
||||
3DFEBF9D1EFBFC1500317D5C /* taxi_provider.hpp in Headers */,
|
||||
346E88991E9D087400D4CE9B /* ads_engine.hpp in Headers */,
|
||||
3D4E997C1FB439260025B48C /* booking_availability_params.hpp in Headers */,
|
||||
3DFEBF9C1EFBFC1500317D5C /* taxi_engine.hpp in Headers */,
|
||||
3D3731F01F98A7AF00D2121B /* booking_http.hpp in Headers */,
|
||||
F6B536431DA520E40067EEA5 /* uber_api.hpp in Headers */,
|
||||
3DBC1C551E4B14920016897F /* facebook_ads.hpp in Headers */,
|
||||
BB1956E71F543D7C003ECE6C /* locals_api.hpp in Headers */,
|
||||
|
@ -397,12 +400,13 @@
|
|||
3DFEBFA41EFBFC2300317D5C /* yandex_tests.cpp in Sources */,
|
||||
3D452AEF1EE6D202009EAB9B /* google_tests.cpp in Sources */,
|
||||
3D452AF01EE6D202009EAB9B /* mopub_tests.cpp in Sources */,
|
||||
3D4E997F1FB439300025B48C /* utils.cpp in Sources */,
|
||||
3430643C1E9FBCF500DC7665 /* mopub_ads.cpp in Sources */,
|
||||
346E88961E9D087400D4CE9B /* ads_base.cpp in Sources */,
|
||||
3DFEBF891EF82C1300317D5C /* viator_tests.cpp in Sources */,
|
||||
3DFEBF851EF82BEA00317D5C /* viator_api.cpp in Sources */,
|
||||
3D4E997D1FB439260025B48C /* booking_availability_params.cpp in Sources */,
|
||||
F6B536421DA520E40067EEA5 /* uber_api.cpp in Sources */,
|
||||
3D3731EF1F98A7AF00D2121B /* booking_http.cpp in Sources */,
|
||||
3DFEBF9B1EFBFC1500317D5C /* taxi_engine.cpp in Sources */,
|
||||
346E889B1E9D087400D4CE9B /* rb_ads.cpp in Sources */,
|
||||
3DBC1C541E4B14920016897F /* facebook_ads.cpp in Sources */,
|
||||
|
|
Loading…
Add table
Reference in a new issue