libkazv
|
Knock on a room, requesting permission to join. More...
#include <knocking.hpp>
Classes | |
class | JobResponse |
Public Member Functions | |
KnockRoomJob (std::string serverUrl, std::string _accessToken, std::string roomIdOrAlias, immer::array< std::string > serverName={}, std::optional< std::string > reason=std::nullopt) | |
Knock on a room, requesting permission to join. More... | |
KnockRoomJob | withData (JsonWrap j) && |
KnockRoomJob | withData (JsonWrap j) const & |
![]() | |
BaseJob (std::string serverUrl, std::string requestUrl, Method method, std::string jobId, std::string token={}, ReturnType returnType=ReturnType::Json, Body body=EmptyBody{}, Query query={}, Header header={}, std::optional< FileDesc > responseFile=std::nullopt) | |
~BaseJob () | |
bool | shouldReturnJson () const |
std::string | url () const |
Body | requestBody () const |
Header | requestHeader () const |
ReturnType | returnType () const |
Query | requestQuery () const |
returns the non-encoded query as an array of pairs More... | |
Method | requestMethod () const |
Response | genResponse (Response r) const |
BaseJob | withData (JsonWrap j) && |
BaseJob | withData (JsonWrap j) const & |
BaseJob | withQueue (std::string id, JobQueuePolicy policy=AlwaysContinue) && |
BaseJob | withQueue (std::string id, JobQueuePolicy policy=AlwaysContinue) const & |
json | dataJson (const std::string &key) const |
std::string | dataStr (const std::string &key) const |
std::string | jobId () const |
std::optional< std::string > | queueId () const |
JobQueuePolicy | queuePolicy () const |
std::optional< FileDesc > | responseFile () const |
Static Public Member Functions | |
static constexpr auto | needsAuth () |
static BaseJob::Query | buildQuery (immer::array< std::string > serverName) |
static BaseJob::Body | buildBody (std::string roomIdOrAlias, immer::array< std::string > serverName, std::optional< std::string > reason) |
![]() | |
static bool | contentTypeMatches (immer::array< std::string > expected, std::string actual) |
Additional Inherited Members | |
![]() | |
enum | ReturnType { Json , File } |
using | Method = std::variant< Get, Post, Put, Delete > |
using | Body = ::Kazv::Body |
using | BytesBody = ::Kazv::BytesBody |
using | JsonBody = ::Kazv::JsonBody |
using | EmptyBody = ::Kazv::EmptyBody |
using | Header = ::Kazv::Header |
using | Response = ::Kazv::Response |
![]() | |
static Get | GET {} |
static Post | POST {} |
static Put | PUT {} |
static Delete | DELETE {} |
![]() | |
void | attachData (JsonWrap data) |
Knock on a room, requesting permission to join.
Note that this API takes either a room ID or alias, unlike other membership APIs.
This API "knocks" on the room to ask for permission to join, if the user is allowed to knock on the room. Acceptance of the knock happens out of band from this API, meaning that the client will have to watch for updates regarding the acceptance/rejection of the knock.
If the room history settings allow, the user will still be able to see history of the room while being in the "knock" state. The user will have to accept the invitation to join the room (acceptance of knock) to see messages reliably. See the /join
endpoints for more information about history visibility to the user.
The knock will appear as an entry in the response of the /sync
API.
|
explicit |
Knock on a room, requesting permission to join.
roomIdOrAlias | The room identifier or alias to knock upon. |
serverName | The servers to attempt to knock on the room through. One of the servers must be participating in the room. |
reason | Optional reason to be included as the reason on the subsequent membership event. |
|
static |
|
static |
|
inlinestaticconstexpr |
KnockRoomJob Kazv::Api::KnockRoomJob::withData | ( | JsonWrap | j | ) | && |
KnockRoomJob Kazv::Api::KnockRoomJob::withData | ( | JsonWrap | j | ) | const & |