libkazv
Kazv::Api::SendToDeviceJob Class Reference

Send an event to a given set of devices. More...

#include <to_device.hpp>

Inheritance diagram for Kazv::Api::SendToDeviceJob:
Collaboration diagram for Kazv::Api::SendToDeviceJob:

Classes

class  JobResponse
 

Public Member Functions

 SendToDeviceJob (std::string serverUrl, std::string _accessToken, std::string eventType, std::string txnId, immer::map< std::string, immer::map< std::string, JsonWrap >> messages)
 Send an event to a given set of devices. More...
 
SendToDeviceJob withData (JsonWrap j) &&
 
SendToDeviceJob 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 eventType, std::string txnId, immer::map< std::string, immer::map< std::string, JsonWrap >> messages)
 
- 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 an event to a given set of devices.

This endpoint is used to send send-to-device events to a set of client devices.

Constructor & Destructor Documentation

◆ SendToDeviceJob()

Kazv::Api::SendToDeviceJob::SendToDeviceJob ( std::string  serverUrl,
std::string  _accessToken,
std::string  eventType,
std::string  txnId,
immer::map< std::string, immer::map< std::string, JsonWrap >>  messages 
)
explicit

Send an event to a given set of devices.

Parameters
eventTypeThe type of event to send.
txnIdThe transaction ID for this event. Clients should generate an ID unique across requests with the same access token; it will be used by the server to ensure idempotency of requests.
messagesThe messages to send. A map from user ID, to a map from device ID to message body. The device ID may also be *, meaning all known devices for the user.

Member Function Documentation

◆ buildBody()

BaseJob::Body Kazv::Api::SendToDeviceJob::buildBody ( std::string  eventType,
std::string  txnId,
immer::map< std::string, immer::map< std::string, JsonWrap >>  messages 
)
static

◆ buildQuery()

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

◆ needsAuth()

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

◆ withData() [1/2]

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

◆ withData() [2/2]

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

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