1/******************************************************************************
2 * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
3 */
4
5#pragma once
6
7#include <Quotient/converters.h>
8
9namespace Quotient {
10
11struct PushCondition {
12 /// The kind of condition to apply. See
13 /// [conditions](/client-server-api/#conditions) for more information on the
14 /// allowed kinds and how they work.
15 QString kind;
16
17 /// Required for `event_match` conditions. The dot-separated field of the
18 /// event to match.
19 ///
20 /// Required for `sender_notification_permission` conditions. The field in
21 /// the power level event the user needs a minimum power level for. Fields
22 /// must be specified under the `notifications` property in the power level
23 /// event's `content`.
24 QString key{};
25
26 /// Required for `event_match` conditions. The [glob-style
27 /// pattern](/appendices#glob-style-matching) to match against.
28 QString pattern{};
29
30 /// Required for `room_member_count` conditions. A decimal integer
31 /// optionally prefixed by one of, ==, <, >, >= or <=. A prefix of < matches
32 /// rooms where the member count is strictly less than the given number and
33 /// so forth. If no prefix is present, this parameter defaults to ==.
34 QString is{};
35};
36
37template <>
38struct JsonObjectConverter<PushCondition> {
39 static void dumpTo(QJsonObject& jo, const PushCondition& pod)
40 {
41 addParam<>(container&: jo, QStringLiteral("kind"), value: pod.kind);
42 addParam<IfNotEmpty>(container&: jo, QStringLiteral("key"), value: pod.key);
43 addParam<IfNotEmpty>(container&: jo, QStringLiteral("pattern"), value: pod.pattern);
44 addParam<IfNotEmpty>(container&: jo, QStringLiteral("is"), value: pod.is);
45 }
46 static void fillFrom(const QJsonObject& jo, PushCondition& pod)
47 {
48 fillFromJson(jv: jo.value(key: "kind"_ls), pod&: pod.kind);
49 fillFromJson(jv: jo.value(key: "key"_ls), pod&: pod.key);
50 fillFromJson(jv: jo.value(key: "pattern"_ls), pod&: pod.pattern);
51 fillFromJson(jv: jo.value(key: "is"_ls), pod&: pod.is);
52 }
53};
54
55} // namespace Quotient
56