aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/projectstore
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-01-22 13:22:21 +0100
committerGitHub <[email protected]>2024-01-22 13:22:21 +0100
commitd0630968516f31a9c6ebc9a5643b7cd19f6cb184 (patch)
treea2bbf71b93f0254415f13cebcb41ac9d808db312 /src/zenserver/projectstore
parentjobqueue - allow multiple threads to report progress/messages (#635) (diff)
downloadzen-d0630968516f31a9c6ebc9a5643b7cd19f6cb184.tar.xz
zen-d0630968516f31a9c6ebc9a5643b7cd19f6cb184.zip
improved errors from jupiter upstream (#636)
* get more detailed error messages from jupiter upstream
Diffstat (limited to 'src/zenserver/projectstore')
-rw-r--r--src/zenserver/projectstore/jupiterremoteprojectstore.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/zenserver/projectstore/jupiterremoteprojectstore.cpp b/src/zenserver/projectstore/jupiterremoteprojectstore.cpp
index fbc3c8e16..9d8f6c17b 100644
--- a/src/zenserver/projectstore/jupiterremoteprojectstore.cpp
+++ b/src/zenserver/projectstore/jupiterremoteprojectstore.cpp
@@ -256,6 +256,28 @@ private:
{
std::string Text;
int32_t ErrorCode = 0;
+ if (Response.ErrorCode != 0 || !Response.Success)
+ {
+ if (Response.Response)
+ {
+ HttpContentType ContentType = Response.Response.GetContentType();
+ if (ContentType == ZenContentType::kText || ContentType == ZenContentType::kJSON)
+ {
+ ExtendableStringBuilder<256> SB;
+ SB.Append("\n");
+ SB.Append(std::string_view(reinterpret_cast<const std::string::value_type*>(Response.Response.GetData()),
+ Response.Response.GetSize()));
+ Text = SB.ToString();
+ }
+ else if (ContentType == ZenContentType::kCbObject)
+ {
+ ExtendableStringBuilder<256> SB;
+ SB.Append("\n");
+ CompactBinaryToJson(Response.Response.GetView(), SB);
+ Text = SB.ToString();
+ }
+ }
+ }
if (Response.ErrorCode != 0)
{
ErrorCode = Response.ErrorCode;
@@ -263,11 +285,6 @@ private:
else if (!Response.Success)
{
ErrorCode = gsl::narrow<int32_t>(HttpResponseCode::InternalServerError);
- if (Response.Response.GetContentType() == ZenContentType::kText)
- {
- Text =
- std::string(reinterpret_cast<const std::string::value_type*>(Response.Response.GetData()), Response.Response.GetSize());
- }
}
return {.ErrorCode = ErrorCode, .ElapsedSeconds = Response.ElapsedSeconds, .Reason = Response.Reason, .Text = Text};
}