aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi/whoami.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/csapi/whoami.h')
-rw-r--r--lib/csapi/whoami.h83
1 files changed, 43 insertions, 40 deletions
diff --git a/lib/csapi/whoami.h b/lib/csapi/whoami.h
index 71e9d532..3451dbc3 100644
--- a/lib/csapi/whoami.h
+++ b/lib/csapi/whoami.h
@@ -6,46 +6,49 @@
#include "jobs/basejob.h"
-
-namespace QMatrixClient
-{
- // Operations
-
+namespace Quotient {
+
+/*! \brief Gets information about the owner of an access token.
+ *
+ * Gets information about the owner of a given access token.
+ *
+ * Note that, as with the rest of the Client-Server API,
+ * Application Services may masquerade as users within their
+ * namespace by giving a `user_id` query parameter. In this
+ * situation, the server should verify that the given `user_id`
+ * is registered by the appservice, and return it in the response
+ * body.
+ */
+class QUOTIENT_API GetTokenOwnerJob : public BaseJob {
+public:
/// Gets information about the owner of an access token.
- ///
- /// Gets information about the owner of a given access token.
- ///
- /// Note that, as with the rest of the Client-Server API,
- /// Application Services may masquerade as users within their
- /// namespace by giving a ``user_id`` query parameter. In this
- /// situation, the server should verify that the given ``user_id``
- /// is registered by the appservice, and return it in the response
- /// body.
- class GetTokenOwnerJob : public BaseJob
+ explicit GetTokenOwnerJob();
+
+ /*! \brief Construct a URL without creating a full-fledged job object
+ *
+ * This function can be used when a URL for GetTokenOwnerJob
+ * is necessary but the job itself isn't.
+ */
+ static QUrl makeRequestUrl(QUrl baseUrl);
+
+ // Result properties
+
+ /// The user ID that owns the access token.
+ QString userId() const { return loadFromJson<QString>("user_id"_ls); }
+
+ /// Device ID associated with the access token. If no device
+ /// is associated with the access token (such as in the case
+ /// of application services) then this field can be omitted.
+ /// Otherwise this is required.
+ QString deviceId() const { return loadFromJson<QString>("device_id"_ls); }
+
+ /// When `true`, the user is a [Guest User](#guest-access). When
+ /// not present or `false`, the user is presumed to be a non-guest
+ /// user.
+ Omittable<bool> isGuest() const
{
- public:
- explicit GetTokenOwnerJob();
-
- /*! Construct a URL without creating a full-fledged job object
- *
- * This function can be used when a URL for
- * GetTokenOwnerJob is necessary but the job
- * itself isn't.
- */
- static QUrl makeRequestUrl(QUrl baseUrl);
-
- ~GetTokenOwnerJob() override;
-
- // Result properties
-
- /// The user id that owns the access token.
- const QString& userId() const;
-
- protected:
- Status parseJson(const QJsonDocument& data) override;
+ return loadFromJson<Omittable<bool>>("is_guest"_ls);
+ }
+};
- private:
- class Private;
- QScopedPointer<Private> d;
- };
-} // namespace QMatrixClient
+} // namespace Quotient