1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
/******************************************************************************
* THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
*/
#pragma once
#include "jobs/basejob.h"
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
|