aboutsummaryrefslogtreecommitdiff
path: root/lib/application-service/definitions/location.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/application-service/definitions/location.h')
-rw-r--r--lib/application-service/definitions/location.h42
1 files changed, 24 insertions, 18 deletions
diff --git a/lib/application-service/definitions/location.h b/lib/application-service/definitions/location.h
index 89b48a43..6801c99f 100644
--- a/lib/application-service/definitions/location.h
+++ b/lib/application-service/definitions/location.h
@@ -6,27 +6,33 @@
#include "converters.h"
-#include <QtCore/QJsonObject>
+namespace Quotient {
-namespace QMatrixClient
-{
- // Data structures
+struct ThirdPartyLocation {
+ /// An alias for a matrix room.
+ QString alias;
- struct ThirdPartyLocation
- {
- /// An alias for a matrix room.
- QString alias;
- /// The protocol ID that the third party location is a part of.
- QString protocol;
- /// Information used to identify this third party location.
- QJsonObject fields;
- };
+ /// The protocol ID that the third party location is a part of.
+ QString protocol;
- QJsonObject toJson(const ThirdPartyLocation& pod);
+ /// Information used to identify this third party location.
+ QJsonObject fields;
+};
- template <> struct FromJsonObject<ThirdPartyLocation>
+template <>
+struct JsonObjectConverter<ThirdPartyLocation> {
+ static void dumpTo(QJsonObject& jo, const ThirdPartyLocation& pod)
+ {
+ addParam<>(jo, QStringLiteral("alias"), pod.alias);
+ addParam<>(jo, QStringLiteral("protocol"), pod.protocol);
+ addParam<>(jo, QStringLiteral("fields"), pod.fields);
+ }
+ static void fillFrom(const QJsonObject& jo, ThirdPartyLocation& pod)
{
- ThirdPartyLocation operator()(const QJsonObject& jo) const;
- };
+ fromJson(jo.value("alias"_ls), pod.alias);
+ fromJson(jo.value("protocol"_ls), pod.protocol);
+ fromJson(jo.value("fields"_ls), pod.fields);
+ }
+};
-} // namespace QMatrixClient
+} // namespace Quotient