libQuotient
A Qt library for building matrix clients
|
Get a list of events for this room. More...
#include <message_pagination.h>
Classes | |
struct | Response |
Public Member Functions | |
GetRoomEventsJob (const QString &roomId, const QString &dir, const QString &from={}, const QString &to={}, std::optional< int > limit=std::nullopt, const QString &filter={}) | |
QString | begin () const |
QString | end () const |
RoomEvents | chunk () |
RoomEvents | state () |
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 |
Static Public Member Functions | |
static QUrl | makeRequestUrl (const HomeserverData &hsData, const QString &roomId, const QString &dir, const QString &from={}, const QString &to={}, std::optional< int > limit=std::nullopt, const QString &filter={}) |
Construct a URL without creating a full-fledged job object. More... | |
Static Public Member Functions inherited from Quotient::BaseJob | |
template<typename... StrTs> | |
static QByteArray | makePath (QByteArrayView base, StrTs &&... parts) |
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) |
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 |
Get a list of events for this room.
This API returns a list of message and state events for a room. It uses pagination query parameters to paginate history in the room.
Note: This endpoint supports lazy-loading of room member events. See Lazy-loading room members for more information.
Definition at line 17 of file message_pagination.h.
|
explicit |
roomId | The room to get events from. |
dir | The direction to return events from. If this is set to f , events will be returned in chronological order starting at from . If it is set to b , events will be returned in reverse chronological order, again starting at from . |
from | The token to start returning events from. This token can be obtained from a prev_batch or next_batch token returned by the /sync endpoint, or from an end token returned by a previous request to this endpoint. |
This endpoint can also accept a value returned as a start
token by a previous request to this endpoint, though servers are not required to support this. Clients should not rely on the behaviour.
If it is not provided, the homeserver shall return a list of messages from the first or last (per the value of the dir
parameter) visible event in the room history for the requesting user.
to | The token to stop returning events at. This token can be obtained from a prev_batch or next_batch token returned by the /sync endpoint, or from an end token returned by a previous request to this endpoint. |
limit | The maximum number of events to return. Default: 10. |
filter | A JSON RoomEventFilter to filter returned events with. |
|
inline |
A token corresponding to the start of chunk
. This will be the same as the value given in from
.
Definition at line 67 of file message_pagination.h.
|
inline |
A list of room events. The order depends on the dir
parameter. For dir=b
events will be in reverse-chronological order, for dir=f
in chronological order. (The exact definition of chronological
is dependent on the server implementation.)
Note that an empty chunk
does not necessarily imply that no more events are available. Clients should continue to paginate until no end
property is returned.
Definition at line 86 of file message_pagination.h.
|
inline |
A token corresponding to the end of chunk
. This token can be passed back to this endpoint to request further events.
If no further events are available (either because we have reached the start of the timeline, or because the user does not have permission to see any more events), this property is omitted from the response.
Definition at line 76 of file message_pagination.h.
|
static |
Construct a URL without creating a full-fledged job object.
This function can be used when a URL for GetRoomEventsJob is necessary but the job itself isn't.
|
inline |
A list of state events relevant to showing the chunk
. For example, if lazy_load_members
is enabled in the filter then this may contain the membership events for the senders of events in the chunk
.
Unless include_redundant_members
is true
, the server may remove membership events which would have already been sent to the client in prior calls to this endpoint, assuming the membership of those members has not changed.
Definition at line 96 of file message_pagination.h.