libQuotient
A Qt library for building matrix clients
|
Add or change a push rule. More...
#include <pushrules.h>
Public Member Functions | |
SetPushRuleJob (const QString &kind, const QString &ruleId, const QVector< QVariant > &actions, const QString &before={}, const QString &after={}, const QVector< PushCondition > &conditions={}, const QString &pattern={}) | |
Public Member Functions inherited from Quotient::BaseJob | |
BaseJob (HttpVerb verb, const QString &name, QByteArray endpoint, bool needsToken=true) | |
BaseJob (HttpVerb verb, const QString &name, QByteArray endpoint, const QUrlQuery &query, RequestData &&data={}, bool needsToken=true) | |
QUrl | requestUrl () const |
bool | isBackground () const |
Status | status () const |
Current status of the job. More... | |
QString | statusCaption () const |
Short human-friendly message on the job status. More... | |
QByteArray | rawData (int bytesAtMost) const |
Get first bytes of the raw response body as received from the server. More... | |
const QByteArray & | rawData () const |
Access the whole response body as received from the server. More... | |
QString | rawDataSample (int bytesAtMost=65535) const |
Get UI-friendly sample of raw data. More... | |
QJsonObject | jsonData () const |
Get the response body as a JSON object. More... | |
QJsonArray | jsonItems () const |
Get the response body as a JSON array. More... | |
template<typename T > | |
T | loadFromJson (auto keyName, T &&defaultValue={}) const |
Load the property from the JSON response assuming a given C++ type. More... | |
template<typename T > | |
T | takeFromJson (auto key, T &&defaultValue={}) |
Load the property from the JSON response and delete it from JSON. More... | |
int | error () const |
Error (more generally, status) code. More... | |
virtual QString | errorString () const |
Error-specific message, as returned by the server. More... | |
QUrl | errorUrl () const |
A URL to help/clarify the error, if provided by the server. More... | |
int | maxRetries () const |
void | setMaxRetries (int newMaxRetries) |
std::chrono::seconds | getCurrentTimeout () const |
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | getCurrentTimeoutMs () const |
std::chrono::seconds | getNextRetryInterval () const |
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | getNextRetryMs () const |
std::chrono::milliseconds | timeToRetry () const |
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | millisToRetry () const |
Additional Inherited Members | |
Public Types inherited from Quotient::BaseJob | |
enum | StatusCode { Success = 0 , NoError = Success , Pending = 1 , WarningLevel = 20 , UnexpectedResponseType = 21 , UnexpectedResponseTypeWarning = UnexpectedResponseType , Unprepared = 25 , Abandoned = 50 , ErrorLevel = 100 , NetworkError = 101 , Timeout , Unauthorised , ContentAccessError , NotFound , IncorrectRequest , IncorrectResponse , TooManyRequests , RateLimited = TooManyRequests , RequestNotImplemented , UnsupportedRoomVersion , NetworkAuthRequired , UserConsentRequired , CannotLeaveRoom , UserDeactivated , FileError , AccountLocked , UserDefinedError = 256 } |
Job status codes. More... | |
using | duration_ms_t = std::chrono::milliseconds::rep |
Public Slots inherited from Quotient::BaseJob | |
void | initiate (Quotient::ConnectionData *connData, bool inBackground) |
void | abandon () |
Abandon the result of this job, arrived or unarrived. More... | |
Signals inherited from Quotient::BaseJob | |
void | aboutToSendRequest (QNetworkRequest *req) |
The job is about to send a network request. More... | |
void | sentRequest () |
The job has sent a network request. More... | |
void | statusChanged (Quotient::BaseJob::Status newStatus) |
The job has changed its status. More... | |
void | retryScheduled (int nextAttempt, Quotient::BaseJob::duration_ms_t inMilliseconds) |
A retry of the network request is scheduled after the previous request failed. More... | |
void | rateLimited () |
The job has been rate-limited. More... | |
void | finished (Quotient::BaseJob *job) |
The job has finished - either with a result, or abandoned. More... | |
void | result (Quotient::BaseJob *job) |
The job has finished with a result, successful or unsuccessful. More... | |
void | success (Quotient::BaseJob *) |
The job has finished with a successful result. More... | |
void | failure (Quotient::BaseJob *) |
The job has finished with a failure result Emitted together with result() when the job resulted in an error. Mutually exclusive with success(): after result() is emitted, exactly one of success() and failure() will be emitted next. Will not be emitted in case of abandon()ing. More... | |
void | downloadProgress (qint64 bytesReceived, qint64 bytesTotal) |
void | uploadProgress (qint64 bytesSent, qint64 bytesTotal) |
Static Public Member Functions inherited from Quotient::BaseJob | |
template<typename... StrTs> | |
static QByteArray | makePath (QByteArrayView base, StrTs &&... parts) |
Protected Types inherited from Quotient::BaseJob | |
using | headers_t = QHash< QByteArray, QByteArray > |
Protected Slots inherited from Quotient::BaseJob | |
void | timeout () |
Protected Member Functions inherited from Quotient::BaseJob | |
QByteArray | apiEndpoint () const |
void | setApiEndpoint (QByteArray apiEndpoint) |
const headers_t & | requestHeaders () const |
void | setRequestHeader (const headers_t::key_type &headerName, const headers_t::mapped_type &headerValue) |
void | setRequestHeaders (const headers_t &headers) |
QUrlQuery | query () const |
void | setRequestQuery (const QUrlQuery &query) |
const RequestData & | requestData () const |
void | setRequestData (RequestData &&data) |
const QByteArrayList & | expectedContentTypes () const |
void | addExpectedContentType (const QByteArray &contentType) |
void | setExpectedContentTypes (const QByteArrayList &contentTypes) |
QStringList | expectedKeys () const |
void | addExpectedKey (QString key) |
void | setExpectedKeys (const QStringList &keys) |
const QNetworkReply * | reply () const |
QNetworkReply * | reply () |
virtual void | doPrepare (const ConnectionData *) |
Prepare the job for execution. More... | |
virtual void | onSentRequest (QNetworkReply *) |
Postprocessing after the network request has been sent. More... | |
virtual void | beforeAbandon () |
virtual Status | checkReply (const QNetworkReply *reply) const |
Check the pending or received reply for upfront issues. More... | |
virtual Status | prepareResult () |
An extension point for additional reply processing. More... | |
virtual Status | prepareError (Status currentStatus) |
Process details of the error. More... | |
QJsonValue | takeValueFromJson (QAnyStringView key) |
Retrieve a value for one specific key and delete it from the JSON response object. More... | |
void | setStatus (Status s) |
void | setStatus (int code, QString message) |
void | forceResult (QJsonDocument resultDoc, Status s={ Success }) |
Force completion of the job for sake of testing. More... | |
void | setLoggingCategory (QMessageLogger::CategoryFunction lcf) |
Set the logging category for the given job instance. More... | |
~BaseJob () override | |
Static Protected Member Functions inherited from Quotient::BaseJob | |
static QUrl | makeRequestUrl (const HomeserverData &hsData, const QByteArray &encodedPath, const QUrlQuery &query={}) |
Construct a URL out of baseUrl, path and query. More... | |
Properties inherited from Quotient::BaseJob | |
QUrl | requestUrl |
int | maxRetries |
int | statusCode |
Add or change a push rule.
This endpoint allows the creation and modification of user defined push rules.
If a rule with the same rule_id
already exists among rules of the same kind, it is updated with the new parameters, otherwise a new rule is created.
If both after
and before
are provided, the new or updated rule must be the next most important rule with respect to the rule identified by before
.
If neither after
nor before
are provided and the rule is created, it should be added as the most important user defined rule among rules of the same kind.
When creating push rules, they MUST be enabled by default.
Definition at line 122 of file pushrules.h.
|
explicit |
kind | The kind of rule |
ruleId | The identifier for the rule. If the string starts with a dot ("."), the request MUST be rejected as this is reserved for server-default rules. Slashes ("/") and backslashes ("\\") are also not allowed. |
actions | The action(s) to perform when the conditions for this rule are met. |
before | Use 'before' with a rule_id as its value to make the new rule the next-most important rule with respect to the given user defined rule. It is not possible to add a rule relative to a predefined server rule. |
after | This makes the new rule the next-less important rule relative to the given user defined rule. It is not possible to add a rule relative to a predefined server rule. |
conditions | The conditions that must hold true for an event in order for a rule to be applied to an event. A rule with no conditions always matches. Only applicable to underride and override rules. |
pattern | Only applicable to content rules. The glob-style pattern to match against. |