diff options
Diffstat (limited to 'lib/application-service/definitions/location.h')
-rw-r--r-- | lib/application-service/definitions/location.h | 42 |
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 |