Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2578388
third_party_membership.hpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
third_party_membership.hpp
View Options
/******************************************************************************
* THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
*/
#pragma once
#include
"basejob.hpp"
namespace
Kazv
::
Api
{
/*! \brief 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
:
class
JobResponse
:
public
Response
{
public
:
JobResponse
(
Response
r
);
bool
success
()
const
;
};
static
constexpr
auto
needsAuth
()
{
return
true
;
}
// Construction/destruction
/*! \brief 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 idAccessToken
* An access token previously registered with the identity server. Servers
* can treat this as optional to distinguish between r0.5-compatible clients
* and this specification version.
*
* \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
(
std
::
string
serverUrl
,
std
::
string
_accessToken
,
std
::
string
roomId
,
std
::
string
idServer
,
std
::
string
idAccessToken
,
std
::
string
medium
,
std
::
string
address
);
static
BaseJob
::
Query
buildQuery
(
);
static
BaseJob
::
Body
buildBody
(
std
::
string
roomId
,
std
::
string
idServer
,
std
::
string
idAccessToken
,
std
::
string
medium
,
std
::
string
address
);
InviteBy3PIDJob
withData
(
JsonWrap
j
)
&&
;
InviteBy3PIDJob
withData
(
JsonWrap
j
)
const
&
;
};
using
InviteBy3PIDResponse
=
InviteBy3PIDJob
::
JobResponse
;
}
namespace
nlohmann
{
using
namespace
Kazv
;
using
namespace
Kazv
::
Api
;
}
namespace
Kazv
::
Api
{
}
// namespace Kazv::Api
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Wed, Jun 25, 2:57 AM (19 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
235132
Default Alt Text
third_party_membership.hpp (3 KB)
Attached To
Mode
rL libkazv
Attached
Detach File
Event Timeline
Log In to Comment