aboutsummaryrefslogtreecommitdiff
path: root/src/zenhttp/include
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-10-16 19:34:38 +0200
committerGitHub Enterprise <[email protected]>2025-10-16 19:34:38 +0200
commit043cf3182e1f73c3e3fd60121f8f2147d10ba134 (patch)
tree888adf926731024b9a268101801efacad136ecd6 /src/zenhttp/include
parentmissing update of m_DiskStats.WriteByteCount in WriteSequenceChunkToCache (#583) (diff)
downloadzen-043cf3182e1f73c3e3fd60121f8f2147d10ba134.tar.xz
zen-043cf3182e1f73c3e3fd60121f8f2147d10ba134.zip
clean up http response formatters (#584)
* remove use of 'error:' in zen output which triggers Horde CI
Diffstat (limited to 'src/zenhttp/include')
-rw-r--r--src/zenhttp/include/zenhttp/cprutils.h92
-rw-r--r--src/zenhttp/include/zenhttp/formatters.h13
2 files changed, 58 insertions, 47 deletions
diff --git a/src/zenhttp/include/zenhttp/cprutils.h b/src/zenhttp/include/zenhttp/cprutils.h
index a3b870c0f..a988346e0 100644
--- a/src/zenhttp/include/zenhttp/cprutils.h
+++ b/src/zenhttp/include/zenhttp/cprutils.h
@@ -25,61 +25,69 @@ struct fmt::formatter<cpr::Response>
{
using namespace std::literals;
- zen::NiceTimeSpanMs NiceResponseTime(uint64_t(Response.elapsed * 1000));
-
- if (zen::IsHttpSuccessCode(Response.status_code))
+ if (Response.error)
{
return fmt::format_to(Ctx.out(),
- "Url: {}, Status: {}, Error: '{}' ({}), Bytes: {}/{} (Up/Down), Elapsed: {}",
+ "Failed: Url: {}, Reason: ({}) '{}'",
Response.url.str(),
- Response.status_code,
- Response.error.message,
int(Response.error.code),
- Response.uploaded_bytes,
- Response.downloaded_bytes,
- NiceResponseTime.c_str());
+ Response.error.message);
}
else
{
- const auto It = Response.header.find("Content-Type");
- const std::string_view ContentType = It != Response.header.end() ? It->second : "<None>"sv;
+ const zen::NiceTimeSpanMs NiceResponseTime(uint64_t(Response.elapsed * 1000));
- if (ContentType == "application/x-ue-cb"sv)
+ if (zen::IsHttpSuccessCode(Response.status_code))
{
- zen::IoBuffer Body(zen::IoBuffer::Wrap, Response.text.data(), Response.text.size());
- zen::CbObjectView Obj(Body.Data());
- zen::ExtendableStringBuilder<256> Sb;
- std::string_view Json = Obj.ToJson(Sb).ToView();
-
- return fmt::format_to(
- Ctx.out(),
- "Url: {}, Status: {}, Error: '{}' ({}). Bytes: {}/{} (Up/Down), Elapsed: {}, Response: '{}', Reason: '{}'",
- Response.url.str(),
- Response.status_code,
- Response.error.message,
- int(Response.error.code),
- Response.uploaded_bytes,
- Response.downloaded_bytes,
- NiceResponseTime.c_str(),
- Json,
- Response.reason);
+ return fmt::format_to(Ctx.out(),
+ "OK: Url: {}, Status: ({}) '{}', Bytes: {}/{} (Up/Down), Elapsed: {}",
+ Response.url.str(),
+ Response.status_code,
+ zen::ToString(zen::HttpResponseCode(Response.status_code)),
+ Response.uploaded_bytes,
+ Response.downloaded_bytes,
+ NiceResponseTime.c_str());
}
else
{
- zen::BodyLogFormatter Body(Response.text);
+ const auto It = Response.header.find("Content-Type");
+ const std::string_view ContentType = It != Response.header.end() ? It->second : "<None>"sv;
+
+ if (ContentType == "application/x-ue-cb"sv)
+ {
+ zen::IoBuffer Body(zen::IoBuffer::Wrap, Response.text.data(), Response.text.size());
+ zen::CbObjectView Obj(Body.Data());
+ zen::ExtendableStringBuilder<256> Sb;
+ std::string_view Json = Obj.ToJson(Sb).ToView();
+
+ return fmt::format_to(
+ Ctx.out(),
+ "Failed: Url: {}, Status: ({}) '{}', Reason: '{}'. Bytes: {}/{} (Up/Down), Elapsed: {}, Response: '{}'",
+ Response.url.str(),
+ Response.status_code,
+ zen::ToString(zen::HttpResponseCode(Response.status_code)),
+ Response.uploaded_bytes,
+ Response.downloaded_bytes,
+ NiceResponseTime.c_str(),
+ Response.reason,
+ Json);
+ }
+ else
+ {
+ zen::BodyLogFormatter Body(Response.text);
- return fmt::format_to(
- Ctx.out(),
- "Url: {}, Status: {}, Error: '{}' ({}), Bytes: {}/{} (Up/Down), Elapsed: {}, Response: '{}', Reason: '{}'",
- Response.url.str(),
- Response.status_code,
- Response.error.message,
- int(Response.error.code),
- Response.uploaded_bytes,
- Response.downloaded_bytes,
- NiceResponseTime.c_str(),
- Body.GetText(),
- Response.reason);
+ return fmt::format_to(
+ Ctx.out(),
+ "Failed: Url: {}, Status: ({}) '{}', Reason: '{}'. Bytes: {}/{} (Up/Down), Elapsed: {}, Response: '{}'",
+ Response.url.str(),
+ Response.status_code,
+ zen::ToString(zen::HttpResponseCode(Response.status_code)),
+ Response.uploaded_bytes,
+ Response.downloaded_bytes,
+ NiceResponseTime.c_str(),
+ Response.reason,
+ Body.GetText());
+ }
}
}
}
diff --git a/src/zenhttp/include/zenhttp/formatters.h b/src/zenhttp/include/zenhttp/formatters.h
index 0af31fa30..addb00cb8 100644
--- a/src/zenhttp/include/zenhttp/formatters.h
+++ b/src/zenhttp/include/zenhttp/formatters.h
@@ -4,6 +4,7 @@
#include <zencore/compactbinary.h>
#include <zencore/compactbinaryvalidation.h>
+#include <zencore/fmtutils.h>
#include <zencore/iobuffer.h>
#include <zencore/string.h>
#include <zenhttp/httpclient.h>
@@ -67,6 +68,8 @@ struct fmt::formatter<zen::HttpClient::Response>
{
using namespace std::literals;
+ const zen::NiceTimeSpanMs NiceResponseTime(uint64_t(Response.ElapsedSeconds * 1000));
+
if (Response.IsSuccess())
{
return fmt::format_to(Ctx.out(),
@@ -74,23 +77,23 @@ struct fmt::formatter<zen::HttpClient::Response>
ToString(Response.StatusCode),
Response.UploadedBytes,
Response.DownloadedBytes,
- Response.ElapsedSeconds);
+ NiceResponseTime);
}
else if (Response.Error)
{
return fmt::format_to(Ctx.out(),
- "Failed: Elapsed: {}s, Error: ({}) '{}",
- Response.ElapsedSeconds,
+ "Failed: Elapsed: {}, Reason: ({}) '{}",
+ NiceResponseTime,
Response.Error.value().ErrorCode,
Response.Error.value().ErrorMessage);
}
else
{
return fmt::format_to(Ctx.out(),
- "Failed: Bytes: {}/{} (Up/Down), Elapsed: {}s, Reason: '{}",
+ "Failed: Bytes: {}/{} (Up/Down), Elapsed: {}, Reason: '{}",
Response.UploadedBytes,
Response.DownloadedBytes,
- Response.ElapsedSeconds,
+ NiceResponseTime,
Response.ErrorMessage(""sv));
}
}