diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-09-02 16:08:13 +0900 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-09-29 22:00:06 +0900 |
commit | 1e6510790dab6b9141ae52993987b406399668cd (patch) | |
tree | 1a45c0ccfec8f5f7ba37eb4385cdc7f61afa0c97 /lib/csapi/wellknown.cpp | |
parent | 4244cee8d5e0f760cccd2b45ad587670573ef03c (diff) | |
download | libquotient-1e6510790dab6b9141ae52993987b406399668cd.tar.gz libquotient-1e6510790dab6b9141ae52993987b406399668cd.zip |
Support CS API 0.4.0
Numerous changes in CS (and now also AS) API, including compatibility-breaking ones - see the diff for details.
Diffstat (limited to 'lib/csapi/wellknown.cpp')
-rw-r--r-- | lib/csapi/wellknown.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/csapi/wellknown.cpp b/lib/csapi/wellknown.cpp new file mode 100644 index 00000000..d42534a0 --- /dev/null +++ b/lib/csapi/wellknown.cpp @@ -0,0 +1,59 @@ +/****************************************************************************** + * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN + */ + +#include "wellknown.h" + +#include "converters.h" + +#include <QtCore/QStringBuilder> + +using namespace QMatrixClient; + +static const auto basePath = QStringLiteral("/.well-known"); + +class GetWellknownJob::Private +{ + public: + HomeserverInformation homeserver; + Omittable<IdentityServerInformation> identityServer; +}; + +QUrl GetWellknownJob::makeRequestUrl(QUrl baseUrl) +{ + return BaseJob::makeRequestUrl(std::move(baseUrl), + basePath % "/matrix/client"); +} + +static const auto GetWellknownJobName = QStringLiteral("GetWellknownJob"); + +GetWellknownJob::GetWellknownJob() + : BaseJob(HttpVerb::Get, GetWellknownJobName, + basePath % "/matrix/client", false) + , d(new Private) +{ +} + +GetWellknownJob::~GetWellknownJob() = default; + +const HomeserverInformation& GetWellknownJob::homeserver() const +{ + return d->homeserver; +} + +const Omittable<IdentityServerInformation>& GetWellknownJob::identityServer() const +{ + return d->identityServer; +} + +BaseJob::Status GetWellknownJob::parseJson(const QJsonDocument& data) +{ + auto json = data.object(); + if (!json.contains("m.homeserver"_ls)) + return { JsonParseError, + "The key 'm.homeserver' not found in the response" }; + d->homeserver = fromJson<HomeserverInformation>(json.value("m.homeserver"_ls)); + d->identityServer = fromJson<IdentityServerInformation>(json.value("m.identity_server"_ls)); + return Success; +} + |