diff options
| author | Dan Engelbrecht <[email protected]> | 2025-10-16 19:34:38 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-10-16 19:34:38 +0200 |
| commit | 043cf3182e1f73c3e3fd60121f8f2147d10ba134 (patch) | |
| tree | 888adf926731024b9a268101801efacad136ecd6 /src/zenhttp/include | |
| parent | missing update of m_DiskStats.WriteByteCount in WriteSequenceChunkToCache (#583) (diff) | |
| download | zen-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.h | 92 | ||||
| -rw-r--r-- | src/zenhttp/include/zenhttp/formatters.h | 13 |
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)); } } |