aboutsummaryrefslogtreecommitdiff
path: root/zenhttp/httpserver.cpp
diff options
context:
space:
mode:
authorPer Larsson <[email protected]>2021-09-27 11:17:18 +0200
committerGitHub <[email protected]>2021-09-27 11:17:18 +0200
commit895b22378d310c4affb782267ae1cbb3bc725c36 (patch)
tree05d345570fc184bd045329f8d2ea54b68c5d5bac /zenhttp/httpserver.cpp
parentPorted CbValue from Unreal to Zen (#10) (diff)
downloadzen-895b22378d310c4affb782267ae1cbb3bc725c36.tar.xz
zen-895b22378d310c4affb782267ae1cbb3bc725c36.zip
Compact binary to JSON (#12)
CompactBinary: Support for converting CbObject to JSON
Diffstat (limited to 'zenhttp/httpserver.cpp')
-rw-r--r--zenhttp/httpserver.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/zenhttp/httpserver.cpp b/zenhttp/httpserver.cpp
index d999f7f60..795e81ea8 100644
--- a/zenhttp/httpserver.cpp
+++ b/zenhttp/httpserver.cpp
@@ -319,9 +319,17 @@ HttpServerRequest::WriteResponse(HttpResponseCode ResponseCode, CbPackage Data)
void
HttpServerRequest::WriteResponse(HttpResponseCode ResponseCode, CbObject Data)
{
- SharedBuffer Buf = Data.GetBuffer();
- std::array<IoBuffer, 1> Buffers{IoBufferBuilder::MakeCloneFromMemory(Buf.GetData(), Buf.GetSize())};
- return WriteResponse(ResponseCode, HttpContentType::kCbObject, Buffers);
+ if (m_AcceptType == HttpContentType::kJSON)
+ {
+ ExtendableStringBuilder<1024> Sb;
+ WriteResponse(ResponseCode, HttpContentType::kJSON, Data.ToJson(Sb).ToView());
+ }
+ else
+ {
+ SharedBuffer Buf = Data.GetBuffer();
+ std::array<IoBuffer, 1> Buffers{IoBufferBuilder::MakeCloneFromMemory(Buf.GetData(), Buf.GetSize())};
+ return WriteResponse(ResponseCode, HttpContentType::kCbObject, Buffers);
+ }
}
void