diff options
Diffstat (limited to 'lib/csapi/pushrules.cpp')
-rw-r--r-- | lib/csapi/pushrules.cpp | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/lib/csapi/pushrules.cpp b/lib/csapi/pushrules.cpp new file mode 100644 index 00000000..eca46247 --- /dev/null +++ b/lib/csapi/pushrules.cpp @@ -0,0 +1,210 @@ +/****************************************************************************** + * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN + */ + +#include "pushrules.h" + +#include "converters.h" + +#include <QtCore/QStringBuilder> + +using namespace QMatrixClient; + +static const auto basePath = QStringLiteral("/_matrix/client/r0"); + +class GetPushRulesJob::Private +{ + public: + PushRuleset global; +}; + +QUrl GetPushRulesJob::makeRequestUrl(QUrl baseUrl) +{ + return BaseJob::makeRequestUrl(std::move(baseUrl), + basePath % "/pushrules"); +} + +GetPushRulesJob::GetPushRulesJob() + : BaseJob(HttpVerb::Get, "GetPushRulesJob", + basePath % "/pushrules") + , d(new Private) +{ +} + +GetPushRulesJob::~GetPushRulesJob() = default; + +const PushRuleset& GetPushRulesJob::global() const +{ + return d->global; +} + +BaseJob::Status GetPushRulesJob::parseJson(const QJsonDocument& data) +{ + auto json = data.object(); + if (!json.contains("global")) + return { JsonParseError, + "The key 'global' not found in the response" }; + d->global = fromJson<PushRuleset>(json.value("global")); + return Success; +} + +class GetPushRuleJob::Private +{ + public: + PushRule data; +}; + +QUrl GetPushRuleJob::makeRequestUrl(QUrl baseUrl, const QString& scope, const QString& kind, const QString& ruleId) +{ + return BaseJob::makeRequestUrl(std::move(baseUrl), + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId); +} + +GetPushRuleJob::GetPushRuleJob(const QString& scope, const QString& kind, const QString& ruleId) + : BaseJob(HttpVerb::Get, "GetPushRuleJob", + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId) + , d(new Private) +{ +} + +GetPushRuleJob::~GetPushRuleJob() = default; + +const PushRule& GetPushRuleJob::data() const +{ + return d->data; +} + +BaseJob::Status GetPushRuleJob::parseJson(const QJsonDocument& data) +{ + auto json = data.object(); + if (!json.contains("data")) + return { JsonParseError, + "The key 'data' not found in the response" }; + d->data = fromJson<PushRule>(json.value("data")); + return Success; +} + +QUrl DeletePushRuleJob::makeRequestUrl(QUrl baseUrl, const QString& scope, const QString& kind, const QString& ruleId) +{ + return BaseJob::makeRequestUrl(std::move(baseUrl), + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId); +} + +DeletePushRuleJob::DeletePushRuleJob(const QString& scope, const QString& kind, const QString& ruleId) + : BaseJob(HttpVerb::Delete, "DeletePushRuleJob", + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId) +{ +} + +BaseJob::Query queryToSetPushRule(const QString& before, const QString& after) +{ + BaseJob::Query _q; + if (!before.isEmpty()) + _q.addQueryItem("before", before); + if (!after.isEmpty()) + _q.addQueryItem("after", after); + return _q; +} + +SetPushRuleJob::SetPushRuleJob(const QString& scope, const QString& kind, const QString& ruleId, const QStringList& actions, const QString& before, const QString& after, const QVector<PushCondition>& conditions, const QString& pattern) + : BaseJob(HttpVerb::Put, "SetPushRuleJob", + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId, + queryToSetPushRule(before, after)) +{ + QJsonObject _data; + addToJson<>(_data, "actions", actions); + addToJson<IfNotEmpty>(_data, "conditions", conditions); + addToJson<IfNotEmpty>(_data, "pattern", pattern); + setRequestData(_data); +} + +class IsPushRuleEnabledJob::Private +{ + public: + bool enabled; +}; + +QUrl IsPushRuleEnabledJob::makeRequestUrl(QUrl baseUrl, const QString& scope, const QString& kind, const QString& ruleId) +{ + return BaseJob::makeRequestUrl(std::move(baseUrl), + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId % "/enabled"); +} + +IsPushRuleEnabledJob::IsPushRuleEnabledJob(const QString& scope, const QString& kind, const QString& ruleId) + : BaseJob(HttpVerb::Get, "IsPushRuleEnabledJob", + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId % "/enabled") + , d(new Private) +{ +} + +IsPushRuleEnabledJob::~IsPushRuleEnabledJob() = default; + +bool IsPushRuleEnabledJob::enabled() const +{ + return d->enabled; +} + +BaseJob::Status IsPushRuleEnabledJob::parseJson(const QJsonDocument& data) +{ + auto json = data.object(); + if (!json.contains("enabled")) + return { JsonParseError, + "The key 'enabled' not found in the response" }; + d->enabled = fromJson<bool>(json.value("enabled")); + return Success; +} + +SetPushRuleEnabledJob::SetPushRuleEnabledJob(const QString& scope, const QString& kind, const QString& ruleId, bool enabled) + : BaseJob(HttpVerb::Put, "SetPushRuleEnabledJob", + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId % "/enabled") +{ + QJsonObject _data; + addToJson<>(_data, "enabled", enabled); + setRequestData(_data); +} + +class GetPushRuleActionsJob::Private +{ + public: + QStringList actions; +}; + +QUrl GetPushRuleActionsJob::makeRequestUrl(QUrl baseUrl, const QString& scope, const QString& kind, const QString& ruleId) +{ + return BaseJob::makeRequestUrl(std::move(baseUrl), + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId % "/actions"); +} + +GetPushRuleActionsJob::GetPushRuleActionsJob(const QString& scope, const QString& kind, const QString& ruleId) + : BaseJob(HttpVerb::Get, "GetPushRuleActionsJob", + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId % "/actions") + , d(new Private) +{ +} + +GetPushRuleActionsJob::~GetPushRuleActionsJob() = default; + +const QStringList& GetPushRuleActionsJob::actions() const +{ + return d->actions; +} + +BaseJob::Status GetPushRuleActionsJob::parseJson(const QJsonDocument& data) +{ + auto json = data.object(); + if (!json.contains("actions")) + return { JsonParseError, + "The key 'actions' not found in the response" }; + d->actions = fromJson<QStringList>(json.value("actions")); + return Success; +} + +SetPushRuleActionsJob::SetPushRuleActionsJob(const QString& scope, const QString& kind, const QString& ruleId, const QStringList& actions) + : BaseJob(HttpVerb::Put, "SetPushRuleActionsJob", + basePath % "/pushrules/" % scope % "/" % kind % "/" % ruleId % "/actions") +{ + QJsonObject _data; + addToJson<>(_data, "actions", actions); + setRequestData(_data); +} + |