/****************************************************************************** * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN */ #pragma once #include "events/roomevent.h" #include "jobs/basejob.h" namespace Quotient { /*! \brief Get the child events for a given parent event. * * Retrieve all of the child events for a given parent event. * * Note that when paginating the `from` token should be "after" the `to` token * in terms of topological ordering, because it is only possible to paginate * "backwards" through events, starting at `from`. * * For example, passing a `from` token from page 2 of the results, and a `to` * token from page 1, would return the empty set. The caller can use a `from` * token from page 1 and a `to` token from page 2 to paginate over the same * range, however. */ class QUOTIENT_API GetRelatingEventsJob : public BaseJob { public: /*! \brief Get the child events for a given parent event. * * \param roomId * The ID of the room containing the parent event. * * \param eventId * The ID of the parent event whose child events are to be returned. * * \param from * The pagination token to start returning results from. If not supplied, * results start at the most recent topological event known to the server. * * Can be a `next_batch` token from a previous call, or a returned * `start` token from * [`/messages`](/client-server-api/#get_matrixclientv3roomsroomidmessages), * or a `next_batch` token from * [`/sync`](/client-server-api/#get_matrixclientv3sync). * * \param to * The pagination token to stop returning results at. If not supplied, * results continue up to `limit` or until there are no more events. * * Like `from`, this can be a previous token from a prior call to this * endpoint or from `/messages` or `/sync`. * * \param limit * The maximum number of results to return in a single `chunk`. The server * can and should apply a maximum value to this parameter to avoid large * responses. * * Similarly, the server should apply a default value when not supplied. */ explicit GetRelatingEventsJob(const QString& roomId, const QString& eventId, const QString& from = {}, const QString& to = {}, Omittable limit = none); /*! \brief Construct a URL without creating a full-fledged job object * * This function can be used when a URL for GetRelatingEventsJob * is necessary but the job itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl, const QString& roomId, const QString& eventId, const QString& from = {}, const QString& to = {}, Omittable limit = none); // Result properties /// The child events of the requested event, ordered topologically /// most-recent first. RoomEvents chunk() { return takeFromJson("chunk"_ls); } /// An opaque string representing a pagination token. The absence of this /// token means there are no more results to fetch and the client should /// stop paginating. QString nextBatch() const { return loadFromJson("next_batch"_ls); } /// An opaque string representing a pagination token. The absence of this /// token means this is the start of the result set, i.e. this is the first /// batch/page. QString prevBatch() const { return loadFromJson("prev_batch"_ls); } }; /*! \brief Get the child events for a given parent event, with a given * `relType`. * * Retrieve all of the child events for a given parent event which relate to the * parent using the given `relType`. * * Note that when paginating the `from` token should be "after" the `to` token * in terms of topological ordering, because it is only possible to paginate * "backwards" through events, starting at `from`. * * For example, passing a `from` token from page 2 of the results, and a `to` * token from page 1, would return the empty set. The caller can use a `from` * token from page 1 and a `to` token from page 2 to paginate over the same * range, however. */ class QUOTIENT_API GetRelatingEventsWithRelTypeJob : public BaseJob { public: /*! \brief Get the child events for a given parent event, with a given * `relType`. * * \param roomId * The ID of the room containing the parent event. * * \param eventId * The ID of the parent event whose child events are to be returned. * * \param relType * The [relationship type](/client-server-api/#relationship-types) to * search for. * * \param from * The pagination token to start returning results from. If not supplied, * results start at the most recent topological event known to the server. * * Can be a `next_batch` token from a previous call, or a returned * `start` token from * [`/messages`](/client-server-api/#get_matrixclientv3roomsroomidmessages), * or a `next_batch` token from * [`/sync`](/client-server-api/#get_matrixclientv3sync). * * \param to * The pagination token to stop returning results at. If not supplied, * results continue up to `limit` or until there are no more events. * * Like `from`, this can be a previous token from a prior call to this * endpoint or from `/messages` or `/sync`. * * \param limit * The maximum number of results to return in a single `chunk`. The server * can and should apply a maximum value to this parameter to avoid large * responses. * * Similarly, the server should apply a default value when not supplied. */ explicit GetRelatingEventsWithRelTypeJob(const QString& roomId, const QString& eventId, const QString& relType, const QString& from = {}, const QString& to = {}, Omittable limit = none); /*! \brief Construct a URL without creating a full-fledged job object * * This function can be used when a URL for GetRelatingEventsWithRelTypeJob * is necessary but the job itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl, const QString& roomId, const QString& eventId, const QString& relType, const QString& from = {}, const QString& to = {}, Omittable limit = none); // Result properties /// The child events of the requested event, ordered topologically /// most-recent first. The events returned will match the `relType` /// supplied in the URL. RoomEvents chunk() { return takeFromJson("chunk"_ls); } /// An opaque string representing a pagination token. The absence of this /// token means there are no more results to fetch and the client should /// stop paginating. QString nextBatch() const { return loadFromJson("next_batch"_ls); } /// An opaque string representing a pagination token. The absence of this /// token means this is the start of the result set, i.e. this is the first /// batch/page. QString prevBatch() const { return loadFromJson("prev_batch"_ls); } }; /*! \brief Get the child events for a given parent event, with a given `relType` * and `eventType`. * * Retrieve all of the child events for a given parent event which relate to the * parent using the given `relType` and have the given `eventType`. * * Note that when paginating the `from` token should be "after" the `to` token * in terms of topological ordering, because it is only possible to paginate * "backwards" through events, starting at `from`. * * For example, passing a `from` token from page 2 of the results, and a `to` * token from page 1, would return the empty set. The caller can use a `from` * token from page 1 and a `to` token from page 2 to paginate over the same * range, however. */ class QUOTIENT_API GetRelatingEventsWithRelTypeAndEventTypeJob : public BaseJob { public: /*! \brief Get the child events for a given parent event, with a given * `relType` and `eventType`. * * \param roomId * The ID of the room containing the parent event. * * \param eventId * The ID of the parent event whose child events are to be returned. * * \param relType * The [relationship type](/client-server-api/#relationship-types) to * search for. * * \param eventType * The event type of child events to search for. * * Note that in encrypted rooms this will typically always be * `m.room.encrypted` regardless of the event type contained within the * encrypted payload. * * \param from * The pagination token to start returning results from. If not supplied, * results start at the most recent topological event known to the server. * * Can be a `next_batch` token from a previous call, or a returned * `start` token from * [`/messages`](/client-server-api/#get_matrixclientv3roomsroomidmessages), * or a `next_batch` token from * [`/sync`](/client-server-api/#get_matrixclientv3sync). * * \param to * The pagination token to stop returning results at. If not supplied, * results continue up to `limit` or until there are no more events. * * Like `from`, this can be a previous token from a prior call to this * endpoint or from `/messages` or `/sync`. * * \param limit * The maximum number of results to return in a single `chunk`. The server * can and should apply a maximum value to this parameter to avoid large * responses. * * Similarly, the server should apply a default value when not supplied. */ explicit GetRelatingEventsWithRelTypeAndEventTypeJob( const QString& roomId, const QString& eventId, const QString& relType, const QString& eventType, const QString& from = {}, const QString& to = {}, Omittable limit = none); /*! \brief Construct a URL without creating a full-fledged job object * * This function can be used when a URL for * GetRelatingEventsWithRelTypeAndEventTypeJob is necessary but the job * itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl, const QString& roomId, const QString& eventId, const QString& relType, const QString& eventType, const QString& from = {}, const QString& to = {}, Omittable limit = none); // Result properties /// The child events of the requested event, ordered topologically /// most-recent first. The events returned will match the `relType` and /// `eventType` supplied in the URL. RoomEvents chunk() { return takeFromJson("chunk"_ls); } /// An opaque string representing a pagination token. The absence of this /// token means there are no more results to fetch and the client should /// stop paginating. QString nextBatch() const { return loadFromJson("next_batch"_ls); } /// An opaque string representing a pagination token. The absence of this /// token means this is the start of the result set, i.e. this is the first /// batch/page. QString prevBatch() const { return loadFromJson("prev_batch"_ls); } }; } // namespace Quotient