1 | /****************************************************************************** |
2 | * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN |
3 | */ |
4 | |
5 | #pragma once |
6 | |
7 | #include <Quotient/csapi/definitions/event_filter.h> |
8 | |
9 | #include <Quotient/converters.h> |
10 | |
11 | namespace Quotient { |
12 | |
13 | struct RoomEventFilter : EventFilter { |
14 | /// If `true`, enables per-[thread](/client-server-api/#threading) |
15 | /// notification counts. Only applies to the `/sync` endpoint. Defaults to |
16 | /// `false`. |
17 | Omittable<bool> unreadThreadNotifications{}; |
18 | |
19 | /// If `true`, enables lazy-loading of membership events. See |
20 | /// [Lazy-loading room |
21 | /// members](/client-server-api/#lazy-loading-room-members) for more |
22 | /// information. Defaults to `false`. |
23 | Omittable<bool> lazyLoadMembers{}; |
24 | |
25 | /// If `true`, sends all membership events for all events, even if they have |
26 | /// already been sent to the client. Does not apply unless |
27 | /// `lazy_load_members` is `true`. See [Lazy-loading room |
28 | /// members](/client-server-api/#lazy-loading-room-members) for more |
29 | /// information. Defaults to `false`. |
30 | Omittable<bool> includeRedundantMembers{}; |
31 | |
32 | /// A list of room IDs to exclude. If this list is absent then no rooms are |
33 | /// excluded. A matching room will be excluded even if it is listed in the |
34 | /// `'rooms'` filter. |
35 | QStringList notRooms{}; |
36 | |
37 | /// A list of room IDs to include. If this list is absent then all rooms are |
38 | /// included. |
39 | QStringList rooms{}; |
40 | |
41 | /// If `true`, includes only events with a `url` key in their content. If |
42 | /// `false`, excludes those events. If omitted, `url` key is not considered |
43 | /// for filtering. |
44 | Omittable<bool> containsUrl{}; |
45 | }; |
46 | |
47 | template <> |
48 | struct JsonObjectConverter<RoomEventFilter> { |
49 | static void dumpTo(QJsonObject& jo, const RoomEventFilter& pod) |
50 | { |
51 | fillJson<EventFilter>(json&: jo, data: pod); |
52 | addParam<IfNotEmpty>(container&: jo, QStringLiteral("unread_thread_notifications" ), |
53 | value: pod.unreadThreadNotifications); |
54 | addParam<IfNotEmpty>(container&: jo, QStringLiteral("lazy_load_members" ), |
55 | value: pod.lazyLoadMembers); |
56 | addParam<IfNotEmpty>(container&: jo, QStringLiteral("include_redundant_members" ), |
57 | value: pod.includeRedundantMembers); |
58 | addParam<IfNotEmpty>(container&: jo, QStringLiteral("not_rooms" ), value: pod.notRooms); |
59 | addParam<IfNotEmpty>(container&: jo, QStringLiteral("rooms" ), value: pod.rooms); |
60 | addParam<IfNotEmpty>(container&: jo, QStringLiteral("contains_url" ), |
61 | value: pod.containsUrl); |
62 | } |
63 | static void fillFrom(const QJsonObject& jo, RoomEventFilter& pod) |
64 | { |
65 | fillFromJson<EventFilter>(jv: jo, pod); |
66 | fillFromJson(jv: jo.value(key: "unread_thread_notifications"_ls ), |
67 | pod&: pod.unreadThreadNotifications); |
68 | fillFromJson(jv: jo.value(key: "lazy_load_members"_ls ), pod&: pod.lazyLoadMembers); |
69 | fillFromJson(jv: jo.value(key: "include_redundant_members"_ls ), |
70 | pod&: pod.includeRedundantMembers); |
71 | fillFromJson(jv: jo.value(key: "not_rooms"_ls ), pod&: pod.notRooms); |
72 | fillFromJson(jv: jo.value(key: "rooms"_ls ), pod&: pod.rooms); |
73 | fillFromJson(jv: jo.value(key: "contains_url"_ls ), pod&: pod.containsUrl); |
74 | } |
75 | }; |
76 | |
77 | } // namespace Quotient |
78 | |