in include/poac/subcmd/search.hpp [34:60]
boost::property_tree::ptree get_search_api(const std::string& query) {
namespace exception = core::exception;
std::string params;
{
boost::property_tree::ptree pt;
pt.put("params", "query=" + query + "&hitsPerPage=20");
std::stringstream ss;
boost::property_tree::json_parser::write_json(ss, pt);
params = ss.str();
}
std::stringstream ss;
io::network::Headers headers;
headers.emplace("X-Algolia-API-Key", ALGOLIA_SEARCH_ONLY_KEY);
headers.emplace("X-Algolia-Application-Id", ALGOLIA_APPLICATION_ID);
ss << io::network::post(ALGOLIA_SEARCH_INDEX_API, params, ALGOLIA_SEARCH_INDEX_API_HOST, headers);
boost::property_tree::ptree pt;
boost::property_tree::json_parser::read_json(ss, pt);
if (const auto value = pt.get_optional<int>("nbHits")) {
if (*value <= 0) {
throw exception::error(query + " not found");
}
}
return pt;
}