diff options
Diffstat (limited to 'lib/csapi/profile.h')
-rw-r--r-- | lib/csapi/profile.h | 279 |
1 files changed, 131 insertions, 148 deletions
diff --git a/lib/csapi/profile.h b/lib/csapi/profile.h index 23094aff..3858fab2 100644 --- a/lib/csapi/profile.h +++ b/lib/csapi/profile.h @@ -6,154 +6,137 @@ #include "jobs/basejob.h" +namespace Quotient { -namespace QMatrixClient -{ - // Operations - - /// Set the user's display name. - /// - /// This API sets the given user's display name. You must have permission to - /// set this user's display name, e.g. you need to have their ``access_token``. - class SetDisplayNameJob : public BaseJob - { - public: - /*! Set the user's display name. - * \param userId - * The user whose display name to set. - * \param displayname - * The new display name for this user. - */ - explicit SetDisplayNameJob(const QString& userId, const QString& displayname = {}); - }; - - /// Get the user's display name. - /// - /// Get the user's display name. This API may be used to fetch the user's - /// own displayname or to query the name of other users; either locally or - /// on remote homeservers. - class GetDisplayNameJob : public BaseJob - { - public: - /*! Get the user's display name. - * \param userId - * The user whose display name to get. - */ - explicit GetDisplayNameJob(const QString& userId); - - /*! Construct a URL without creating a full-fledged job object - * - * This function can be used when a URL for - * GetDisplayNameJob is necessary but the job - * itself isn't. - */ - static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId); - - ~GetDisplayNameJob() override; - - // Result properties - - /// The user's display name if they have set one, otherwise not present. - const QString& displayname() const; - - protected: - Status parseJson(const QJsonDocument& data) override; - - private: - class Private; - QScopedPointer<Private> d; - }; - - /// Set the user's avatar URL. - /// - /// This API sets the given user's avatar URL. You must have permission to - /// set this user's avatar URL, e.g. you need to have their ``access_token``. - class SetAvatarUrlJob : public BaseJob - { - public: - /*! Set the user's avatar URL. - * \param userId - * The user whose avatar URL to set. - * \param avatarUrl - * The new avatar URL for this user. - */ - explicit SetAvatarUrlJob(const QString& userId, const QString& avatarUrl = {}); - }; - - /// Get the user's avatar URL. - /// - /// Get the user's avatar URL. This API may be used to fetch the user's - /// own avatar URL or to query the URL of other users; either locally or - /// on remote homeservers. - class GetAvatarUrlJob : public BaseJob +/*! \brief Set the user's display name. + * + * This API sets the given user's display name. You must have permission to + * set this user's display name, e.g. you need to have their ``access_token``. + */ +class SetDisplayNameJob : public BaseJob { +public: + /*! \brief Set the user's display name. + * + * \param userId + * The user whose display name to set. + * + * \param displayname + * The new display name for this user. + */ + explicit SetDisplayNameJob(const QString& userId, + const QString& displayname); +}; + +/*! \brief Get the user's display name. + * + * Get the user's display name. This API may be used to fetch the user's + * own displayname or to query the name of other users; either locally or + * on remote homeservers. + */ +class GetDisplayNameJob : public BaseJob { +public: + /*! \brief Get the user's display name. + * + * \param userId + * The user whose display name to get. + */ + explicit GetDisplayNameJob(const QString& userId); + + /*! \brief Construct a URL without creating a full-fledged job object + * + * This function can be used when a URL for GetDisplayNameJob + * is necessary but the job itself isn't. + */ + static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId); + + // Result properties + + /// The user's display name if they have set one, otherwise not present. + QString displayname() const { - public: - /*! Get the user's avatar URL. - * \param userId - * The user whose avatar URL to get. - */ - explicit GetAvatarUrlJob(const QString& userId); - - /*! Construct a URL without creating a full-fledged job object - * - * This function can be used when a URL for - * GetAvatarUrlJob is necessary but the job - * itself isn't. - */ - static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId); - - ~GetAvatarUrlJob() override; - - // Result properties - - /// The user's avatar URL if they have set one, otherwise not present. - const QString& avatarUrl() const; - - protected: - Status parseJson(const QJsonDocument& data) override; - - private: - class Private; - QScopedPointer<Private> d; - }; - - /// Get this user's profile information. - /// - /// Get the combined profile information for this user. This API may be used - /// to fetch the user's own profile information or other users; either - /// locally or on remote homeservers. This API may return keys which are not - /// limited to ``displayname`` or ``avatar_url``. - class GetUserProfileJob : public BaseJob + return loadFromJson<QString>("displayname"_ls); + } +}; + +/*! \brief Set the user's avatar URL. + * + * This API sets the given user's avatar URL. You must have permission to + * set this user's avatar URL, e.g. you need to have their ``access_token``. + */ +class SetAvatarUrlJob : public BaseJob { +public: + /*! \brief Set the user's avatar URL. + * + * \param userId + * The user whose avatar URL to set. + * + * \param avatarUrl + * The new avatar URL for this user. + */ + explicit SetAvatarUrlJob(const QString& userId, const QString& avatarUrl); +}; + +/*! \brief Get the user's avatar URL. + * + * Get the user's avatar URL. This API may be used to fetch the user's + * own avatar URL or to query the URL of other users; either locally or + * on remote homeservers. + */ +class GetAvatarUrlJob : public BaseJob { +public: + /*! \brief Get the user's avatar URL. + * + * \param userId + * The user whose avatar URL to get. + */ + explicit GetAvatarUrlJob(const QString& userId); + + /*! \brief Construct a URL without creating a full-fledged job object + * + * This function can be used when a URL for GetAvatarUrlJob + * is necessary but the job itself isn't. + */ + static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId); + + // Result properties + + /// The user's avatar URL if they have set one, otherwise not present. + QString avatarUrl() const { return loadFromJson<QString>("avatar_url"_ls); } +}; + +/*! \brief Get this user's profile information. + * + * Get the combined profile information for this user. This API may be used + * to fetch the user's own profile information or other users; either + * locally or on remote homeservers. This API may return keys which are not + * limited to ``displayname`` or ``avatar_url``. + */ +class GetUserProfileJob : public BaseJob { +public: + /*! \brief Get this user's profile information. + * + * \param userId + * The user whose profile information to get. + */ + explicit GetUserProfileJob(const QString& userId); + + /*! \brief Construct a URL without creating a full-fledged job object + * + * This function can be used when a URL for GetUserProfileJob + * is necessary but the job itself isn't. + */ + static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId); + + // Result properties + + /// The user's avatar URL if they have set one, otherwise not present. + QString avatarUrl() const { return loadFromJson<QString>("avatar_url"_ls); } + + /// The user's display name if they have set one, otherwise not present. + QString displayname() const { - public: - /*! Get this user's profile information. - * \param userId - * The user whose profile information to get. - */ - explicit GetUserProfileJob(const QString& userId); - - /*! Construct a URL without creating a full-fledged job object - * - * This function can be used when a URL for - * GetUserProfileJob is necessary but the job - * itself isn't. - */ - static QUrl makeRequestUrl(QUrl baseUrl, const QString& userId); - - ~GetUserProfileJob() override; - - // Result properties - - /// The user's avatar URL if they have set one, otherwise not present. - const QString& avatarUrl() const; - /// The user's display name if they have set one, otherwise not present. - const QString& displayname() const; - - protected: - Status parseJson(const QJsonDocument& data) override; - - private: - class Private; - QScopedPointer<Private> d; - }; -} // namespace QMatrixClient + return loadFromJson<QString>("displayname"_ls); + } +}; + +} // namespace Quotient |