aboutsummaryrefslogtreecommitdiff
path: root/lib/jobs/requestdata.cpp
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2018-03-31 20:29:02 +0900
committerKitsune Ral <Kitsune-Ral@users.sf.net>2018-03-31 20:29:56 +0900
commita62bc225b8b4c714e7943aad69d84704a03b8015 (patch)
treedf5ff6f4cf878ecd74c14ea41a1d27a46055b415 /lib/jobs/requestdata.cpp
parent9d8900197e69e9c0ffaaff6f63a40cb80cf08fb1 (diff)
parent6a61d3a127db1e253821bfb2ebb7f433bd534c4a (diff)
downloadlibquotient-a62bc225b8b4c714e7943aad69d84704a03b8015.tar.gz
libquotient-a62bc225b8b4c714e7943aad69d84704a03b8015.zip
Merge branch 'kitsune-install-target'
Closes #113.
Diffstat (limited to 'lib/jobs/requestdata.cpp')
-rw-r--r--lib/jobs/requestdata.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/jobs/requestdata.cpp b/lib/jobs/requestdata.cpp
new file mode 100644
index 00000000..5cb62221
--- /dev/null
+++ b/lib/jobs/requestdata.cpp
@@ -0,0 +1,38 @@
+#include "requestdata.h"
+
+#include <QtCore/QByteArray>
+#include <QtCore/QJsonObject>
+#include <QtCore/QJsonArray>
+#include <QtCore/QJsonDocument>
+#include <QtCore/QBuffer>
+
+using namespace QMatrixClient;
+
+auto fromData(const QByteArray& data)
+{
+ auto source = std::make_unique<QBuffer>();
+ source->open(QIODevice::WriteOnly);
+ source->write(data);
+ source->close();
+ return source;
+}
+
+template <typename JsonDataT>
+inline auto fromJson(const JsonDataT& jdata)
+{
+ return fromData(QJsonDocument(jdata).toJson(QJsonDocument::Compact));
+}
+
+RequestData::RequestData(const QByteArray& a)
+ : _source(fromData(a))
+{ }
+
+RequestData::RequestData(const QJsonObject& jo)
+ : _source(fromJson(jo))
+{ }
+
+RequestData::RequestData(const QJsonArray& ja)
+ : _source(fromJson(ja))
+{ }
+
+RequestData::~RequestData() = default;