From a4b26bce047572105e9f15267afb68e1eee31286 Mon Sep 17 00:00:00 2001 From: Ian Roddis Date: Thu, 30 Dec 2021 14:29:56 -0400 Subject: [PATCH] Handling http errors a bit more gracefully --- libdaggy/src/Utilities.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libdaggy/src/Utilities.cpp b/libdaggy/src/Utilities.cpp index 47127c8..0958cae 100644 --- a/libdaggy/src/Utilities.cpp +++ b/libdaggy/src/Utilities.cpp @@ -276,17 +276,17 @@ namespace daggy { auto response = HTTP_REQUEST(url, payload, method); rj::Document doc; - if (response.code == HTTPCode::Server_Error) { - doc.SetObject(); - auto &alloc = doc.GetAllocator(); - doc.AddMember("error", - rj::Value().SetString(response.body.c_str(), - response.body.size(), alloc), - alloc); - } - else { + try { checkRJParse(doc.Parse(response.body.c_str())); } + catch (std::exception &e) { + doc.SetObject(); + auto &alloc = doc.GetAllocator(); + std::string message = (response.body.empty() ? e.what() : response.body); + doc.AddMember( + "error", + rj::Value().SetString(message.c_str(), message.size(), alloc), alloc); + } return std::make_pair(response.code, std::move(doc)); }