1 /******************************************************************************
2 * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
3 */
4
5 #include "capabilities.h"
6
7 #include "converters.h"
8
9 #include <QtCore/QStringBuilder>
10
11 using namespace Quotient;
12
13 static const auto basePath = QStringLiteral("/_matrix/client/r0");
14
15 // Converters
16 namespace Quotient
17 {
18
19 template <>
20 struct JsonObjectConverter<GetCapabilitiesJob::ChangePasswordCapability>
21 {
fillFromQuotient::JsonObjectConverter22 static void fillFrom(const QJsonObject& jo,
23 GetCapabilitiesJob::ChangePasswordCapability& result)
24 {
25 fromJson(jo.value("enabled"_ls), result.enabled);
26 }
27 };
28
29 template <>
30 struct JsonObjectConverter<GetCapabilitiesJob::RoomVersionsCapability>
31 {
fillFromQuotient::JsonObjectConverter32 static void fillFrom(const QJsonObject& jo,
33 GetCapabilitiesJob::RoomVersionsCapability& result)
34 {
35 fromJson(jo.value("default"_ls), result.defaultVersion);
36 fromJson(jo.value("available"_ls), result.available);
37 }
38 };
39
40 template <>
41 struct JsonObjectConverter<GetCapabilitiesJob::Capabilities>
42 {
fillFromQuotient::JsonObjectConverter43 static void fillFrom(QJsonObject jo,
44 GetCapabilitiesJob::Capabilities& result)
45 {
46 fromJson(jo.take("m.change_password"_ls), result.changePassword);
47 fromJson(jo.take("m.room_versions"_ls), result.roomVersions);
48 fromJson(jo, result.additionalProperties);
49 }
50 };
51
52 } // namespace Quotient
53
54 class GetCapabilitiesJob::Private
55 {
56 public:
57 Capabilities capabilities;
58 };
59
makeRequestUrl(QUrl baseUrl)60 QUrl GetCapabilitiesJob::makeRequestUrl(QUrl baseUrl)
61 {
62 return BaseJob::makeRequestUrl(std::move(baseUrl),
63 basePath % "/capabilities");
64 }
65
66 static const auto GetCapabilitiesJobName = QStringLiteral("GetCapabilitiesJob");
67
GetCapabilitiesJob()68 GetCapabilitiesJob::GetCapabilitiesJob()
69 : BaseJob(HttpVerb::Get, GetCapabilitiesJobName, basePath % "/capabilities")
70 , d(new Private)
71 {}
72
73 GetCapabilitiesJob::~GetCapabilitiesJob() = default;
74
capabilities() const75 const GetCapabilitiesJob::Capabilities& GetCapabilitiesJob::capabilities() const
76 {
77 return d->capabilities;
78 }
79
parseJson(const QJsonDocument & data)80 BaseJob::Status GetCapabilitiesJob::parseJson(const QJsonDocument& data)
81 {
82 auto json = data.object();
83 if (!json.contains("capabilities"_ls))
84 return { IncorrectResponse,
85 "The key 'capabilities' not found in the response" };
86 fromJson(json.value("capabilities"_ls), d->capabilities);
87
88 return Success;
89 }
90