libkazv
Kazv::Api::SetRoomStateWithKeyJob Class Reference

Send a state event to the given room. More...

#include <room_state.hpp>

Inheritance diagram for Kazv::Api::SetRoomStateWithKeyJob:
Collaboration diagram for Kazv::Api::SetRoomStateWithKeyJob:

Classes

class  JobResponse
 

Public Member Functions

 SetRoomStateWithKeyJob (std::string serverUrl, std::string _accessToken, std::string roomId, std::string eventType, std::string stateKey, JsonWrap body={})
 Send a state event to the given room. More...
 
SetRoomStateWithKeyJob withData (JsonWrap j) &&
 
SetRoomStateWithKeyJob withData (JsonWrap j) const &
 
- Public Member Functions inherited from Kazv::BaseJob
 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< FileDescresponseFile () const
 

Static Public Member Functions

static constexpr auto needsAuth ()
 
static BaseJob::Query buildQuery ()
 
static BaseJob::Body buildBody (std::string roomId, std::string eventType, std::string stateKey, JsonWrap body)
 
- Static Public Member Functions inherited from Kazv::BaseJob
static bool contentTypeMatches (immer::array< std::string > expected, std::string actual)
 

Additional Inherited Members

- Public Types inherited from Kazv::BaseJob
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 Public Attributes inherited from Kazv::BaseJob
static Get GET {}
 
static Post POST {}
 
static Put PUT {}
 
static Delete DELETE {}
 
- Protected Member Functions inherited from Kazv::BaseJob
void attachData (JsonWrap data)
 

Detailed Description

Send a state event to the given room.

State events can be sent using this endpoint. These events will be overwritten if <room id>, <event type> and <state key> all match.

Requests to this endpoint cannot use transaction IDs like other PUT paths because they cannot be differentiated from the state_key. Furthermore, POST is unsupported on state paths.

The body of the request should be the content object of the event; the fields in this object will vary depending on the type of event. See Room Events for the m. event specification.

If the event type being sent is m.room.canonical_alias servers SHOULD ensure that any new aliases being listed in the event are valid per their grammar/syntax and that they point to the room ID where the state event is to be sent. Servers do not validate aliases which are being removed or are already present in the state event.

Constructor & Destructor Documentation

◆ SetRoomStateWithKeyJob()

Kazv::Api::SetRoomStateWithKeyJob::SetRoomStateWithKeyJob ( std::string  serverUrl,
std::string  _accessToken,
std::string  roomId,
std::string  eventType,
std::string  stateKey,
JsonWrap  body = {} 
)
explicit

Send a state event to the given room.

Parameters
roomIdThe room to set the state in
eventTypeThe type of event to send.
stateKeyThe state_key for the state to send. Defaults to the empty string. When an empty string, the trailing slash on this endpoint is optional.
bodyState events can be sent using this endpoint. These events will be overwritten if <room id>, <event type> and <state key> all match.

Requests to this endpoint cannot use transaction IDs like other PUT paths because they cannot be differentiated from the state_key. Furthermore, POST is unsupported on state paths.

The body of the request should be the content object of the event; the fields in this object will vary depending on the type of event. See Room Events for the m. event specification.

If the event type being sent is m.room.canonical_alias servers SHOULD ensure that any new aliases being listed in the event are valid per their grammar/syntax and that they point to the room ID where the state event is to be sent. Servers do not validate aliases which are being removed or are already present in the state event.

Member Function Documentation

◆ buildBody()

BaseJob::Body Kazv::Api::SetRoomStateWithKeyJob::buildBody ( std::string  roomId,
std::string  eventType,
std::string  stateKey,
JsonWrap  body 
)
static

◆ buildQuery()

BaseJob::Query Kazv::Api::SetRoomStateWithKeyJob::buildQuery ( )
static

◆ needsAuth()

static constexpr auto Kazv::Api::SetRoomStateWithKeyJob::needsAuth ( )
inlinestaticconstexpr

◆ withData() [1/2]

SetRoomStateWithKeyJob Kazv::Api::SetRoomStateWithKeyJob::withData ( JsonWrap  j) &&

◆ withData() [2/2]

SetRoomStateWithKeyJob Kazv::Api::SetRoomStateWithKeyJob::withData ( JsonWrap  j) const &

The documentation for this class was generated from the following files: