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 EventFilter {
12 /// The maximum number of events to return, must be an integer greater than
13 /// 0.
14 ///
15 /// Servers should apply a default value, and impose a maximum value to
16 /// avoid resource exhaustion.
17 Omittable<int> limit{};
18
19 /// A list of sender IDs to exclude. If this list is absent then no senders
20 /// are excluded. A matching sender will be excluded even if it is listed in
21 /// the `'senders'` filter.
22 QStringList notSenders{};
23
24 /// A list of event types to exclude. If this list is absent then no event
25 /// types are excluded. A matching type will be excluded even if it is
26 /// listed in the `'types'` filter. A '*' can be used as a wildcard to match
27 /// any sequence of characters.
28 QStringList notTypes{};
29
30 /// A list of senders IDs to include. If this list is absent then all
31 /// senders are included.
32 QStringList senders{};
33
34 /// A list of event types to include. If this list is absent then all event
35 /// types are included. A `'*'` can be used as a wildcard to match any
36 /// sequence of characters.
37 QStringList types{};
38};
39
40template <>
41struct JsonObjectConverter<EventFilter> {
42 static void dumpTo(QJsonObject& jo, const EventFilter& pod)
43 {
44 addParam<IfNotEmpty>(container&: jo, QStringLiteral("limit"), value: pod.limit);
45 addParam<IfNotEmpty>(container&: jo, QStringLiteral("not_senders"), value: pod.notSenders);
46 addParam<IfNotEmpty>(container&: jo, QStringLiteral("not_types"), value: pod.notTypes);
47 addParam<IfNotEmpty>(container&: jo, QStringLiteral("senders"), value: pod.senders);
48 addParam<IfNotEmpty>(container&: jo, QStringLiteral("types"), value: pod.types);
49 }
50 static void fillFrom(const QJsonObject& jo, EventFilter& pod)
51 {
52 fillFromJson(jv: jo.value(key: "limit"_ls), pod&: pod.limit);
53 fillFromJson(jv: jo.value(key: "not_senders"_ls), pod&: pod.notSenders);
54 fillFromJson(jv: jo.value(key: "not_types"_ls), pod&: pod.notTypes);
55 fillFromJson(jv: jo.value(key: "senders"_ls), pod&: pod.senders);
56 fillFromJson(jv: jo.value(key: "types"_ls), pod&: pod.types);
57 }
58};
59
60} // namespace Quotient
61