diff options
Diffstat (limited to 'lib/csapi/versions.cpp')
-rw-r--r-- | lib/csapi/versions.cpp | 38 |
1 files changed, 5 insertions, 33 deletions
diff --git a/lib/csapi/versions.cpp b/lib/csapi/versions.cpp index 8cce03b9..9003e27f 100644 --- a/lib/csapi/versions.cpp +++ b/lib/csapi/versions.cpp @@ -4,48 +4,20 @@ #include "versions.h" -#include "converters.h" - #include <QtCore/QStringBuilder> using namespace Quotient; -static const auto basePath = QStringLiteral("/_matrix/client"); - -class GetVersionsJob::Private { -public: - QStringList versions; - QHash<QString, bool> unstableFeatures; -}; - QUrl GetVersionsJob::makeRequestUrl(QUrl baseUrl) { - return BaseJob::makeRequestUrl(std::move(baseUrl), basePath % "/versions"); + return BaseJob::makeRequestUrl(std::move(baseUrl), + QStringLiteral("/_matrix/client") + % "/versions"); } GetVersionsJob::GetVersionsJob() : BaseJob(HttpVerb::Get, QStringLiteral("GetVersionsJob"), - basePath % "/versions", false) - , d(new Private) -{} - -GetVersionsJob::~GetVersionsJob() = default; - -const QStringList& GetVersionsJob::versions() const { return d->versions; } - -const QHash<QString, bool>& GetVersionsJob::unstableFeatures() const + QStringLiteral("/_matrix/client") % "/versions", false) { - return d->unstableFeatures; -} - -BaseJob::Status GetVersionsJob::parseJson(const QJsonDocument& data) -{ - auto json = data.object(); - if (!json.contains("versions"_ls)) - return { IncorrectResponse, - "The key 'versions' not found in the response" }; - fromJson(json.value("versions"_ls), d->versions); - fromJson(json.value("unstable_features"_ls), d->unstableFeatures); - - return Success; + addExpectedKey("versions"); } |