diff options
Diffstat (limited to 'lib/csapi/account-data.h')
-rw-r--r-- | lib/csapi/account-data.h | 159 |
1 files changed, 114 insertions, 45 deletions
diff --git a/lib/csapi/account-data.h b/lib/csapi/account-data.h index 669a4e2c..75bb9ce3 100644 --- a/lib/csapi/account-data.h +++ b/lib/csapi/account-data.h @@ -8,49 +8,118 @@ #include <QtCore/QJsonObject> -namespace QMatrixClient { - // Operations - - /// Set some account_data for the user. - /// - /// Set some account_data for the client. This config is only visible to the - /// user that set the account_data. The config will be synced to clients in - /// the top-level ``account_data``. - class SetAccountDataJob : public BaseJob - { - public: - /*! Set some account_data for the user. - * \param userId - * The id of the user to set account_data for. The access token must - * be authorized to make requests for this user id. \param type The - * event type of the account_data to set. Custom types should be - * namespaced to avoid clashes. - * \param content - * The content of the account_data - */ - explicit SetAccountDataJob(const QString& userId, const QString& type, - const QJsonObject& content = {}); - }; - - /// Set some account_data for the user. - /// - /// Set some account_data for the client on a given room. This config is - /// only visible to the user that set the account_data. The config will be - /// synced to clients in the per-room ``account_data``. - class SetAccountDataPerRoomJob : public BaseJob - { - public: - /*! Set some account_data for the user. - * \param userId - * The id of the user to set account_data for. The access token must - * be authorized to make requests for this user id. \param roomId The id - * of the room to set account_data on. \param type The event type of the - * account_data to set. Custom types should be namespaced to avoid - * clashes. \param content The content of the account_data - */ - explicit SetAccountDataPerRoomJob(const QString& userId, - const QString& roomId, - const QString& type, - const QJsonObject& content = {}); - }; +namespace QMatrixClient +{ + +// Operations + +/// Set some account_data for the user. +/*! + * Set some account_data for the client. This config is only visible to the user + * that set the account_data. The config will be synced to clients in the + * top-level ``account_data``. + */ +class SetAccountDataJob : public BaseJob +{ +public: + /*! Set some account_data for the user. + * \param userId + * The ID of the user to set account_data for. The access token must be + * authorized to make requests for this user ID. + * \param type + * The event type of the account_data to set. Custom types should be + * namespaced to avoid clashes. + * \param content + * The content of the account_data + */ + explicit SetAccountDataJob(const QString& userId, const QString& type, + const QJsonObject& content = {}); +}; + +/// Get some account_data for the user. +/*! + * Get some account_data for the client. This config is only visible to the user + * that set the account_data. + */ +class GetAccountDataJob : public BaseJob +{ +public: + /*! Get some account_data for the user. + * \param userId + * The ID of the user to get account_data for. The access token must be + * authorized to make requests for this user ID. + * \param type + * The event type of the account_data to get. Custom types should be + * namespaced to avoid clashes. + */ + explicit GetAccountDataJob(const QString& userId, const QString& type); + + /*! Construct a URL without creating a full-fledged job object + * + * This function can be used when a URL for + * GetAccountDataJob is necessary but the job + * itself isn't. + */ + static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId, + const QString& type); +}; + +/// Set some account_data for the user. +/*! + * Set some account_data for the client on a given room. This config is only + * visible to the user that set the account_data. The config will be synced to + * clients in the per-room ``account_data``. + */ +class SetAccountDataPerRoomJob : public BaseJob +{ +public: + /*! Set some account_data for the user. + * \param userId + * The ID of the user to set account_data for. The access token must be + * authorized to make requests for this user ID. + * \param roomId + * The ID of the room to set account_data on. + * \param type + * The event type of the account_data to set. Custom types should be + * namespaced to avoid clashes. + * \param content + * The content of the account_data + */ + explicit SetAccountDataPerRoomJob(const QString& userId, + const QString& roomId, const QString& type, + const QJsonObject& content = {}); +}; + +/// Get some account_data for the user. +/*! + * Get some account_data for the client on a given room. This config is only + * visible to the user that set the account_data. + */ +class GetAccountDataPerRoomJob : public BaseJob +{ +public: + /*! Get some account_data for the user. + * \param userId + * The ID of the user to set account_data for. The access token must be + * authorized to make requests for this user ID. + * \param roomId + * The ID of the room to get account_data for. + * \param type + * The event type of the account_data to get. Custom types should be + * namespaced to avoid clashes. + */ + explicit GetAccountDataPerRoomJob(const QString& userId, + const QString& roomId, + const QString& type); + + /*! Construct a URL without creating a full-fledged job object + * + * This function can be used when a URL for + * GetAccountDataPerRoomJob is necessary but the job + * itself isn't. + */ + static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId, + const QString& roomId, const QString& type); +}; + } // namespace QMatrixClient |