diff options
Diffstat (limited to 'lib/csapi/admin.cpp')
-rw-r--r-- | lib/csapi/admin.cpp | 69 |
1 files changed, 35 insertions, 34 deletions
diff --git a/lib/csapi/admin.cpp b/lib/csapi/admin.cpp index ce06a56d..58334118 100644 --- a/lib/csapi/admin.cpp +++ b/lib/csapi/admin.cpp @@ -12,65 +12,66 @@ using namespace QMatrixClient; static const auto basePath = QStringLiteral("/_matrix/client/r0"); +// Converters namespace QMatrixClient { - // Converters - template <> struct JsonObjectConverter<GetWhoIsJob::ConnectionInfo> +template <> +struct JsonObjectConverter<GetWhoIsJob::ConnectionInfo> +{ + static void fillFrom(const QJsonObject& jo, + GetWhoIsJob::ConnectionInfo& result) { - static void fillFrom(const QJsonObject& jo, GetWhoIsJob::ConnectionInfo& result) - { - fromJson(jo.value("ip"_ls), result.ip); - fromJson(jo.value("last_seen"_ls), result.lastSeen); - fromJson(jo.value("user_agent"_ls), result.userAgent); - } - }; - - template <> struct JsonObjectConverter<GetWhoIsJob::SessionInfo> + fromJson(jo.value("ip"_ls), result.ip); + fromJson(jo.value("last_seen"_ls), result.lastSeen); + fromJson(jo.value("user_agent"_ls), result.userAgent); + } +}; + +template <> +struct JsonObjectConverter<GetWhoIsJob::SessionInfo> +{ + static void fillFrom(const QJsonObject& jo, GetWhoIsJob::SessionInfo& result) { - static void fillFrom(const QJsonObject& jo, GetWhoIsJob::SessionInfo& result) - { - fromJson(jo.value("connections"_ls), result.connections); - } - }; + fromJson(jo.value("connections"_ls), result.connections); + } +}; - template <> struct JsonObjectConverter<GetWhoIsJob::DeviceInfo> +template <> +struct JsonObjectConverter<GetWhoIsJob::DeviceInfo> +{ + static void fillFrom(const QJsonObject& jo, GetWhoIsJob::DeviceInfo& result) { - static void fillFrom(const QJsonObject& jo, GetWhoIsJob::DeviceInfo& result) - { - fromJson(jo.value("sessions"_ls), result.sessions); - } - }; + fromJson(jo.value("sessions"_ls), result.sessions); + } +}; + } // namespace QMatrixClient class GetWhoIsJob::Private { - public: - QString userId; - QHash<QString, DeviceInfo> devices; +public: + QString userId; + QHash<QString, DeviceInfo> devices; }; QUrl GetWhoIsJob::makeRequestUrl(QUrl baseUrl, const QString& userId) { return BaseJob::makeRequestUrl(std::move(baseUrl), - basePath % "/admin/whois/" % userId); + basePath % "/admin/whois/" % userId); } static const auto GetWhoIsJobName = QStringLiteral("GetWhoIsJob"); GetWhoIsJob::GetWhoIsJob(const QString& userId) : BaseJob(HttpVerb::Get, GetWhoIsJobName, - basePath % "/admin/whois/" % userId) + basePath % "/admin/whois/" % userId) , d(new Private) -{ -} +{} GetWhoIsJob::~GetWhoIsJob() = default; -const QString& GetWhoIsJob::userId() const -{ - return d->userId; -} +const QString& GetWhoIsJob::userId() const { return d->userId; } const QHash<QString, GetWhoIsJob::DeviceInfo>& GetWhoIsJob::devices() const { @@ -82,6 +83,6 @@ BaseJob::Status GetWhoIsJob::parseJson(const QJsonDocument& data) auto json = data.object(); fromJson(json.value("user_id"_ls), d->userId); fromJson(json.value("devices"_ls), d->devices); + return Success; } - |