Pass strings to api_post and api_get directly, ensure distro_series is null if distro_series_link is empty

main
Simon Quigley 1 month ago
parent 65fe1e54f5
commit 6870125249

@ -211,14 +211,14 @@ bool launchpad::is_authenticated() const {
std::string launchpad::build_full_url(const std::string& endpoint) const { std::string launchpad::build_full_url(const std::string& endpoint) const {
if (endpoint.rfind("http", 0) == 0) { if (endpoint.rfind("http", 0) == 0) {
return endpoint; return endpoint;
} else if (endpoint != "") { } else if (!endpoint.empty()) {
return service_root + "/" + api_version + "/" + endpoint; return service_root + "/" + api_version + "/" + endpoint;
} }
std::cerr << "Internal error: endpoint is empty" << std::endl; std::cerr << "Internal error: endpoint is empty" << std::endl;
return ""; return "";
} }
std::optional<std::string> launchpad::api_get(const std::string& endpoint, const std::map<std::string, std::string>& params) const { std::optional<std::string> launchpad::api_get(const std::string endpoint, const std::map<std::string, std::string> params) const {
std::string url = build_full_url(endpoint); std::string url = build_full_url(endpoint);
if (url.empty()) { if (url.empty()) {
if (!params.empty()) { if (!params.empty()) {
@ -296,10 +296,10 @@ std::optional<std::string> launchpad::api_get(const std::string& endpoint, const
} }
std::optional<std::string> launchpad::api_post( std::optional<std::string> launchpad::api_post(
const std::string& endpoint, const std::string endpoint,
const std::map<std::string, std::string>& params, const std::map<std::string, std::string> params,
bool build_endpoint, bool build_endpoint,
const std::string& token_secret_override const std::string token_secret_override
) { ) {
if (endpoint.empty()) { if (endpoint.empty()) {
if (!params.empty()) { if (!params.empty()) {

@ -69,11 +69,11 @@ public:
// API Methods // API Methods
std::optional<archive> get_archive(const std::string& distribution_name); std::optional<archive> get_archive(const std::string& distribution_name);
std::optional<std::string> api_get(const std::string& endpoint = "", const std::map<std::string, std::string>& params = {}) const; std::optional<std::string> api_get(const std::string endpoint = "", const std::map<std::string, std::string> params = {}) const;
std::optional<std::string> api_post(const std::string& endpoint = "", std::optional<std::string> api_post(const std::string endpoint = "",
const std::map<std::string, std::string>& params = {}, const std::map<std::string, std::string> params = {},
bool build_endpoint = true, bool build_endpoint = true,
const std::string& token_secret_override = ""); const std::string token_secret_override = "");
std::optional<std::string> api_patch(const std::string& endpoint = "", const nlohmann::json& data = nlohmann::json{}); std::optional<std::string> api_patch(const std::string& endpoint = "", const nlohmann::json& data = nlohmann::json{});
std::optional<std::string> api_delete(const std::string& endpoint = ""); std::optional<std::string> api_delete(const std::string& endpoint = "");

@ -82,6 +82,7 @@ void source_package_publishing_history::set_lp(launchpad* lp_ptr) {
} }
const std::optional<class distro_series> source_package_publishing_history::getDistroSeries() { const std::optional<class distro_series> source_package_publishing_history::getDistroSeries() {
if (distro_series_link.empty()) return std::nullopt;
auto response = lp->api_get(distro_series_link); auto response = lp->api_get(distro_series_link);
if (!response) return std::nullopt; if (!response) return std::nullopt;
auto data = nlohmann::json::parse(response.value()); auto data = nlohmann::json::parse(response.value());

Loading…
Cancel
Save