libQuotient
A Qt library for building matrix clients
Loading...
Searching...
No Matches
sync_filter.h
Go to the documentation of this file.
1// THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
2
3#pragma once
4
5#include <Quotient/csapi/definitions/event_filter.h>
6#include <Quotient/csapi/definitions/room_event_filter.h>
7
8#include <Quotient/converters.h>
9
10namespace Quotient {
11//! Filters to be applied to room data.
13 //! A list of room IDs to exclude. If this list is absent then no rooms are excluded. A matching
14 //! room will be excluded even if it is listed in the `'rooms'` filter. This filter is applied
15 //! before the filters in `ephemeral`, `state`, `timeline` or `account_data`
17
18 //! A list of room IDs to include. If this list is absent then all rooms are included. This
19 //! filter is applied before the filters in `ephemeral`, `state`, `timeline` or `account_data`
21
22 //! The ephemeral events to include for rooms. These are the events that appear in the
23 //! `ephemeral` property in the `/sync` response.
25
26 //! Include rooms that the user has left in the sync, default false
28
29 //! The state events to include for rooms.
31
32 //! The message and state update events to include for rooms.
34
35 //! The per user account data to include for rooms.
37};
38
39template <>
41 static void dumpTo(QJsonObject& jo, const RoomFilter& pod)
42 {
43 addParam<IfNotEmpty>(jo, "not_rooms"_L1, pod.notRooms);
44 addParam<IfNotEmpty>(jo, "rooms"_L1, pod.rooms);
45 addParam<IfNotEmpty>(jo, "ephemeral"_L1, pod.ephemeral);
46 addParam<IfNotEmpty>(jo, "include_leave"_L1, pod.includeLeave);
47 addParam<IfNotEmpty>(jo, "state"_L1, pod.state);
48 addParam<IfNotEmpty>(jo, "timeline"_L1, pod.timeline);
49 addParam<IfNotEmpty>(jo, "account_data"_L1, pod.accountData);
50 }
51 static void fillFrom(const QJsonObject& jo, RoomFilter& pod)
52 {
53 fillFromJson(jo.value("not_rooms"_L1), pod.notRooms);
54 fillFromJson(jo.value("rooms"_L1), pod.rooms);
55 fillFromJson(jo.value("ephemeral"_L1), pod.ephemeral);
56 fillFromJson(jo.value("include_leave"_L1), pod.includeLeave);
57 fillFromJson(jo.value("state"_L1), pod.state);
58 fillFromJson(jo.value("timeline"_L1), pod.timeline);
59 fillFromJson(jo.value("account_data"_L1), pod.accountData);
60 }
61};
62
64 //! List of event fields to include. If this list is absent then all fields are included. The
65 //! entries are [dot-separated paths for each property](/appendices#dot-separated-property-paths)
66 //! to include. So ['content.body'] will include the 'body' field of the 'content' object. A
67 //! server may include more fields than were requested.
69
70 //! The format to use for events. 'client' will return the events in a format suitable for
71 //! clients. 'federation' will return the raw event as received over federation. The default is
72 //! 'client'.
74
75 //! The presence updates to include.
77
78 //! The user account data that isn't associated with rooms to include.
80
81 //! Filters to be applied to room data.
83};
84
85template <>
87 static void dumpTo(QJsonObject& jo, const Filter& pod)
88 {
89 addParam<IfNotEmpty>(jo, "event_fields"_L1, pod.eventFields);
90 addParam<IfNotEmpty>(jo, "event_format"_L1, pod.eventFormat);
91 addParam<IfNotEmpty>(jo, "presence"_L1, pod.presence);
92 addParam<IfNotEmpty>(jo, "account_data"_L1, pod.accountData);
93 addParam<IfNotEmpty>(jo, "room"_L1, pod.room);
94 }
95 static void fillFrom(const QJsonObject& jo, Filter& pod)
96 {
97 fillFromJson(jo.value("event_fields"_L1), pod.eventFields);
98 fillFromJson(jo.value("event_format"_L1), pod.eventFormat);
99 fillFromJson(jo.value("presence"_L1), pod.presence);
100 fillFromJson(jo.value("account_data"_L1), pod.accountData);
101 fillFromJson(jo.value("room"_L1), pod.room);
102 }
103};
104
105} // namespace Quotient
#define QUOTIENT_API
Filters to be applied to room data.
Definition sync_filter.h:12