aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi/third_party_membership.h
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2018-07-18 18:39:56 +0900
committerKitsune Ral <Kitsune-Ral@users.sf.net>2018-07-18 18:39:56 +0900
commit5e6b4bb975fa9697a6aca001629c65db506a437f (patch)
treedeeb501bd6b534dc1ce454fb03e2d91e09597770 /lib/csapi/third_party_membership.h
parent56480bc96b28356c44547cc3d9ea1afbda9f04f9 (diff)
downloadlibquotient-5e6b4bb975fa9697a6aca001629c65db506a437f.tar.gz
libquotient-5e6b4bb975fa9697a6aca001629c65db506a437f.zip
csapi: Doxy-comments thanks to the latest GTAD
Diffstat (limited to 'lib/csapi/third_party_membership.h')
-rw-r--r--lib/csapi/third_party_membership.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/csapi/third_party_membership.h b/lib/csapi/third_party_membership.h
index d0c9f811..e8276b3c 100644
--- a/lib/csapi/third_party_membership.h
+++ b/lib/csapi/third_party_membership.h
@@ -11,9 +11,65 @@ namespace QMatrixClient
{
// Operations
+ /// Invite a user to participate in a particular room.
+ ///
+ /// .. _invite-by-third-party-id-endpoint:
+ ///
+ /// *Note that there are two forms of this API, which are documented separately.
+ /// This version of the API does not require that the inviter know the Matrix
+ /// identifier of the invitee, and instead relies on third party identifiers.
+ /// The homeserver uses an identity server to perform the mapping from
+ /// third party identifier to a Matrix identifier. The other is documented in the*
+ /// `joining rooms section`_.
+ ///
+ /// This API invites a user to participate in a particular room.
+ /// They do not start participating in the room until they actually join the
+ /// room.
+ ///
+ /// Only users currently in a particular room can invite other users to
+ /// join that room.
+ ///
+ /// If the identity server did know the Matrix user identifier for the
+ /// third party identifier, the homeserver will append a ``m.room.member``
+ /// event to the room.
+ ///
+ /// If the identity server does not know a Matrix user identifier for the
+ /// passed third party identifier, the homeserver will issue an invitation
+ /// which can be accepted upon providing proof of ownership of the third
+ /// party identifier. This is achieved by the identity server generating a
+ /// token, which it gives to the inviting homeserver. The homeserver will
+ /// add an ``m.room.third_party_invite`` event into the graph for the room,
+ /// containing that token.
+ ///
+ /// When the invitee binds the invited third party identifier to a Matrix
+ /// user ID, the identity server will give the user a list of pending
+ /// invitations, each containing:
+ ///
+ /// - The room ID to which they were invited
+ ///
+ /// - The token given to the homeserver
+ ///
+ /// - A signature of the token, signed with the identity server's private key
+ ///
+ /// - The matrix user ID who invited them to the room
+ ///
+ /// If a token is requested from the identity server, the homeserver will
+ /// append a ``m.room.third_party_invite`` event to the room.
+ ///
+ /// .. _joining rooms section: `invite-by-user-id-endpoint`_
class InviteBy3PIDJob : public BaseJob
{
public:
+ /*! Invite a user to participate in a particular room.
+ * \param roomId
+ * The room identifier (not alias) to which to invite the user.
+ * \param idServer
+ * The hostname+port of the identity server which should be used for third party identifier lookups.
+ * \param medium
+ * The kind of address being passed in the address field, for example ``email``.
+ * \param address
+ * The invitee's third party identifier.
+ */
explicit InviteBy3PIDJob(const QString& roomId, const QString& idServer, const QString& medium, const QString& address);
};
} // namespace QMatrixClient