aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi/relations.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/csapi/relations.h')
-rw-r--r--lib/csapi/relations.h277
1 files changed, 277 insertions, 0 deletions
diff --git a/lib/csapi/relations.h b/lib/csapi/relations.h
new file mode 100644
index 00000000..985a43b5
--- /dev/null
+++ b/lib/csapi/relations.h
@@ -0,0 +1,277 @@
+/******************************************************************************
+ * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
+ */
+
+#pragma once
+
+#include "events/eventloader.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<int> 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<int> limit = none);
+
+ // Result properties
+
+ /// The child events of the requested event, ordered topologically
+ /// most-recent first.
+ RoomEvents chunk() { return takeFromJson<RoomEvents>("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<QString>("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<QString>("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<int> 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<int> 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<RoomEvents>("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<QString>("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<QString>("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<int> 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<int> 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<RoomEvents>("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<QString>("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<QString>("prev_batch"_ls); }
+};
+
+} // namespace Quotient