1/******************************************************************************
2 * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
3 */
4
5#pragma once
6
7#include <Quotient/jobs/basejob.h>
8
9namespace Quotient {
10
11/*! \brief Set some account data for the user.
12 *
13 * Set some account data for the client. This config is only visible to the user
14 * that set the account data. The config will be available to clients through
15 * the top-level `account_data` field in the homeserver response to
16 * [/sync](#get_matrixclientv3sync).
17 */
18class QUOTIENT_API SetAccountDataJob : public BaseJob {
19public:
20 /*! \brief Set some account data for the user.
21 *
22 * \param userId
23 * The ID of the user to set account data for. The access token must be
24 * authorized to make requests for this user ID.
25 *
26 * \param type
27 * The event type of the account data to set. Custom types should be
28 * namespaced to avoid clashes.
29 *
30 * \param content
31 * The content of the account data.
32 */
33 explicit SetAccountDataJob(const QString& userId, const QString& type,
34 const QJsonObject& content = {});
35};
36
37/*! \brief Get some account data for the user.
38 *
39 * Get some account data for the client. This config is only visible to the user
40 * that set the account data.
41 */
42class QUOTIENT_API GetAccountDataJob : public BaseJob {
43public:
44 /*! \brief Get some account data for the user.
45 *
46 * \param userId
47 * The ID of the user to get account data for. The access token must be
48 * authorized to make requests for this user ID.
49 *
50 * \param type
51 * The event type of the account data to get. Custom types should be
52 * namespaced to avoid clashes.
53 */
54 explicit GetAccountDataJob(const QString& userId, const QString& type);
55
56 /*! \brief Construct a URL without creating a full-fledged job object
57 *
58 * This function can be used when a URL for GetAccountDataJob
59 * is necessary but the job itself isn't.
60 */
61 static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId,
62 const QString& type);
63};
64
65/*! \brief Set some account data for the user that is specific to a room.
66 *
67 * Set some account data for the client on a given room. This config is only
68 * visible to the user that set the account data. The config will be delivered
69 * to clients in the per-room entries via [/sync](#get_matrixclientv3sync).
70 */
71class QUOTIENT_API SetAccountDataPerRoomJob : public BaseJob {
72public:
73 /*! \brief Set some account data for the user that is specific to a room.
74 *
75 * \param userId
76 * The ID of the user to set account data for. The access token must be
77 * authorized to make requests for this user ID.
78 *
79 * \param roomId
80 * The ID of the room to set account data on.
81 *
82 * \param type
83 * The event type of the account data to set. Custom types should be
84 * namespaced to avoid clashes.
85 *
86 * \param content
87 * The content of the account data.
88 */
89 explicit SetAccountDataPerRoomJob(const QString& userId,
90 const QString& roomId, const QString& type,
91 const QJsonObject& content = {});
92};
93
94/*! \brief Get some account data for the user that is specific to a room.
95 *
96 * Get some account data for the client on a given room. This config is only
97 * visible to the user that set the account data.
98 */
99class QUOTIENT_API GetAccountDataPerRoomJob : public BaseJob {
100public:
101 /*! \brief Get some account data for the user that is specific to a room.
102 *
103 * \param userId
104 * The ID of the user to get account data for. The access token must be
105 * authorized to make requests for this user ID.
106 *
107 * \param roomId
108 * The ID of the room to get account data for.
109 *
110 * \param type
111 * The event type of the account data to get. Custom types should be
112 * namespaced to avoid clashes.
113 */
114 explicit GetAccountDataPerRoomJob(const QString& userId,
115 const QString& roomId,
116 const QString& type);
117
118 /*! \brief Construct a URL without creating a full-fledged job object
119 *
120 * This function can be used when a URL for GetAccountDataPerRoomJob
121 * is necessary but the job itself isn't.
122 */
123 static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId,
124 const QString& roomId, const QString& type);
125};
126
127} // namespace Quotient
128