libkazv
Kazv::Api::SetPushRuleJob Class Reference

Add or change a push rule. More...

#include <pushrules.hpp>

Inheritance diagram for Kazv::Api::SetPushRuleJob:
Collaboration diagram for Kazv::Api::SetPushRuleJob:

Classes

class  JobResponse
 

Public Member Functions

 SetPushRuleJob (std::string serverUrl, std::string _accessToken, std::string scope, std::string kind, std::string ruleId, immer::array< Variant > actions, std::optional< std::string > before=std::nullopt, std::optional< std::string > after=std::nullopt, immer::array< PushCondition > conditions={}, std::optional< std::string > pattern=std::nullopt)
 Add or change a push rule. More...
 
SetPushRuleJob withData (JsonWrap j) &&
 
SetPushRuleJob 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 (std::optional< std::string > before, std::optional< std::string > after)
 
static BaseJob::Body buildBody (std::string scope, std::string kind, std::string ruleId, immer::array< Variant > actions, std::optional< std::string > before, std::optional< std::string > after, immer::array< PushCondition > conditions, std::optional< std::string > pattern)
 
- 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

Add or change a push rule.

This endpoint allows the creation, modification and deletion of pushers for this user ID. The behaviour of this endpoint varies depending on the values in the JSON body.

When creating push rules, they MUST be enabled by default.

Constructor & Destructor Documentation

◆ SetPushRuleJob()

Kazv::Api::SetPushRuleJob::SetPushRuleJob ( std::string  serverUrl,
std::string  _accessToken,
std::string  scope,
std::string  kind,
std::string  ruleId,
immer::array< Variant actions,
std::optional< std::string >  before = std::nullopt,
std::optional< std::string >  after = std::nullopt,
immer::array< PushCondition conditions = {},
std::optional< std::string >  pattern = std::nullopt 
)
explicit

Add or change a push rule.

Parameters
scopeglobal to specify global rules.
kindThe kind of rule
ruleIdThe identifier for the rule.
actionsThe action(s) to perform when the conditions for this rule are met.
beforeUse 'before' with a rule_id as its value to make the new rule the next-most important rule with respect to the given user defined rule. It is not possible to add a rule relative to a predefined server rule.
afterThis makes the new rule the next-less important rule relative to the given user defined rule. It is not possible to add a rule relative to a predefined server rule.
conditionsThe conditions that must hold true for an event in order for a rule to be applied to an event. A rule with no conditions always matches. Only applicable to underride and override rules.
patternOnly applicable to content rules. The glob-style pattern to match against.

Member Function Documentation

◆ buildBody()

BaseJob::Body Kazv::Api::SetPushRuleJob::buildBody ( std::string  scope,
std::string  kind,
std::string  ruleId,
immer::array< Variant actions,
std::optional< std::string >  before,
std::optional< std::string >  after,
immer::array< PushCondition conditions,
std::optional< std::string >  pattern 
)
static

◆ buildQuery()

BaseJob::Query Kazv::Api::SetPushRuleJob::buildQuery ( std::optional< std::string >  before,
std::optional< std::string >  after 
)
static

◆ needsAuth()

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

◆ withData() [1/2]

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

◆ withData() [2/2]

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

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