handle nullptr errors
This commit is contained in:
parent
2b72d3150c
commit
6e9d509442
@ -30,6 +30,7 @@
|
||||
#include "utils/string.hpp"
|
||||
#include "utils/unix.hpp"
|
||||
#include "utils/windows.hpp"
|
||||
#include <optional>
|
||||
|
||||
using namespace std::literals::chrono_literals;
|
||||
|
||||
@ -61,9 +62,17 @@ auto get_download(std::uint64_t record_id, const server_cfg &server)
|
||||
|
||||
auto response =
|
||||
cli.Get(fmt::format("/api/{}/queue", server.api_version), params, {});
|
||||
if (not response) {
|
||||
utils::error::handle_error(
|
||||
function_name,
|
||||
fmt::format("get download request failed|{}|{}|no response",
|
||||
server.id, server.url, response->status));
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
if (response->status != httplib::StatusCode::OK_200) {
|
||||
utils::error::handle_error(
|
||||
function_name, fmt::format("check server request failed|{}|{}|{}",
|
||||
function_name, fmt::format("get download request failed|{}|{}|{}",
|
||||
server.id, server.url, response->status));
|
||||
return std::nullopt;
|
||||
}
|
||||
@ -101,9 +110,17 @@ auto list_queue(const server_cfg &server) -> int {
|
||||
|
||||
auto response =
|
||||
cli.Get(fmt::format("/api/{}/queue", server.api_version), params, {});
|
||||
if (not response) {
|
||||
utils::error::handle_error(
|
||||
function_name,
|
||||
fmt::format("list queue request failed|{}|{}|no response", server.id,
|
||||
server.url, response->status));
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (response->status != httplib::StatusCode::OK_200) {
|
||||
utils::error::handle_error(
|
||||
function_name, fmt::format("check server request failed|{}|{}|{}",
|
||||
function_name, fmt::format("list queue request failed|{}|{}|{}",
|
||||
server.id, server.url, response->status));
|
||||
return 3;
|
||||
}
|
||||
@ -164,46 +181,55 @@ void remove_stalled(std::string_view download_id, std::string_view title,
|
||||
fmt::format("/api/{}/queue/{}?blocklist=true&skipRedownload=false",
|
||||
server.api_version,
|
||||
utils::string::split(download_id, '/', false).at(1U)));
|
||||
if (response->status != httplib::StatusCode::OK_200) {
|
||||
if (not response) {
|
||||
utils::error::handle_error(
|
||||
function_name, fmt::format("failed to delete download|{}|{}|{}",
|
||||
function_name,
|
||||
fmt::format("remove stalled request failed|{}|{}|no response",
|
||||
server.id, server.url, response->status));
|
||||
return;
|
||||
}
|
||||
|
||||
if (response->status != httplib::StatusCode::OK_200) {
|
||||
utils::error::handle_error(
|
||||
function_name, fmt::format("remove stalled request failed|{}|{}|{}",
|
||||
server.id, server.url, response->status));
|
||||
return;
|
||||
}
|
||||
|
||||
std::optional<nlohmann::json> data;
|
||||
|
||||
if (utils::string::contains("radarr", server.id)) {
|
||||
nlohmann::json data({
|
||||
data = nlohmann::json({
|
||||
{"name", "MoviesSearch"},
|
||||
{"movieIds", {movie_id}},
|
||||
});
|
||||
|
||||
response = cli.Post(fmt::format("/api/{}/command", server.api_version),
|
||||
data.dump(), "application/json");
|
||||
if (response->status != httplib::StatusCode::Created_201) {
|
||||
utils::error::handle_error(function_name,
|
||||
fmt::format("failed to search|{}|{}|{}|{}|{}",
|
||||
server.id, server.url, title,
|
||||
movie_id, response->status));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (not utils::string::contains("sonarr", server.id)) {
|
||||
return;
|
||||
}
|
||||
|
||||
nlohmann::json data({
|
||||
} else if (utils::string::contains("sonarr", server.id)) {
|
||||
data = nlohmann::json({
|
||||
{"name", "EpisodeSearch"},
|
||||
{"episodeIds", {episode_id}},
|
||||
});
|
||||
}
|
||||
|
||||
if (not data.has_value()) {
|
||||
return;
|
||||
}
|
||||
|
||||
response = cli.Post(fmt::format("/api/{}/command", server.api_version),
|
||||
data.dump(), "application/json");
|
||||
if (response->status != httplib::StatusCode::Created_201) {
|
||||
data->dump(), "application/json");
|
||||
if (not response) {
|
||||
utils::error::handle_error(
|
||||
function_name, fmt::format("failed to search|{}|{}|{}|{}|no response",
|
||||
server.id, server.url, title, movie_id));
|
||||
return;
|
||||
}
|
||||
|
||||
if (response->status == httplib::StatusCode::Created_201) {
|
||||
return;
|
||||
}
|
||||
|
||||
utils::error::handle_error(function_name,
|
||||
fmt::format("failed to search|{}|{}|{}|{}|{}",
|
||||
server.id, server.url, title,
|
||||
episode_id, response->status));
|
||||
}
|
||||
server.id, server.url, title, movie_id,
|
||||
response->status));
|
||||
}
|
||||
} // namespace monitarr
|
||||
|
@ -49,6 +49,14 @@ static void check_server(const server_cfg &server, data_db &state_db) {
|
||||
|
||||
auto response =
|
||||
cli.Get(fmt::format("/api/{}/queue", server.api_version), params, {});
|
||||
if (not response) {
|
||||
utils::error::handle_error(
|
||||
function_name,
|
||||
fmt::format("check server request failed|{}|{}|no response",
|
||||
server.id, server.url, response->status));
|
||||
break;
|
||||
}
|
||||
|
||||
if (response->status != httplib::StatusCode::OK_200) {
|
||||
utils::error::handle_error(
|
||||
function_name, fmt::format("check server request failed|{}|{}|{}",
|
||||
|
Loading…
x
Reference in New Issue
Block a user