mirror of
https://mau.dev/mautrix/go.git
synced 2026-03-14 14:25:53 +01:00
filter: make sub-structs properly nullable so omitempty works
Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
parent
ddcb5fa6c5
commit
4b4599d4ab
4 changed files with 26 additions and 26 deletions
|
|
@ -476,14 +476,14 @@ func (syncer *cryptoSyncer) OnFailedSync(_ *mautrix.RespSync, err error) (time.D
|
|||
func (syncer *cryptoSyncer) GetFilterJSON(_ id.UserID) *mautrix.Filter {
|
||||
everything := []event.Type{{Type: "*"}}
|
||||
return &mautrix.Filter{
|
||||
Presence: mautrix.FilterPart{NotTypes: everything},
|
||||
AccountData: mautrix.FilterPart{NotTypes: everything},
|
||||
Room: mautrix.RoomFilter{
|
||||
Presence: &mautrix.FilterPart{NotTypes: everything},
|
||||
AccountData: &mautrix.FilterPart{NotTypes: everything},
|
||||
Room: &mautrix.RoomFilter{
|
||||
IncludeLeave: false,
|
||||
Ephemeral: mautrix.FilterPart{NotTypes: everything},
|
||||
AccountData: mautrix.FilterPart{NotTypes: everything},
|
||||
State: mautrix.FilterPart{NotTypes: everything},
|
||||
Timeline: mautrix.FilterPart{NotTypes: everything},
|
||||
Ephemeral: &mautrix.FilterPart{NotTypes: everything},
|
||||
AccountData: &mautrix.FilterPart{NotTypes: everything},
|
||||
State: &mautrix.FilterPart{NotTypes: everything},
|
||||
Timeline: &mautrix.FilterPart{NotTypes: everything},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -503,14 +503,14 @@ func (syncer *cryptoSyncer) OnFailedSync(_ *mautrix.RespSync, err error) (time.D
|
|||
func (syncer *cryptoSyncer) GetFilterJSON(_ id.UserID) *mautrix.Filter {
|
||||
everything := []event.Type{{Type: "*"}}
|
||||
return &mautrix.Filter{
|
||||
Presence: mautrix.FilterPart{NotTypes: everything},
|
||||
AccountData: mautrix.FilterPart{NotTypes: everything},
|
||||
Room: mautrix.RoomFilter{
|
||||
Presence: &mautrix.FilterPart{NotTypes: everything},
|
||||
AccountData: &mautrix.FilterPart{NotTypes: everything},
|
||||
Room: &mautrix.RoomFilter{
|
||||
IncludeLeave: false,
|
||||
Ephemeral: mautrix.FilterPart{NotTypes: everything},
|
||||
AccountData: mautrix.FilterPart{NotTypes: everything},
|
||||
State: mautrix.FilterPart{NotTypes: everything},
|
||||
Timeline: mautrix.FilterPart{NotTypes: everything},
|
||||
Ephemeral: &mautrix.FilterPart{NotTypes: everything},
|
||||
AccountData: &mautrix.FilterPart{NotTypes: everything},
|
||||
State: &mautrix.FilterPart{NotTypes: everything},
|
||||
Timeline: &mautrix.FilterPart{NotTypes: everything},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
|||
20
filter.go
20
filter.go
|
|
@ -19,24 +19,24 @@ const (
|
|||
// Filter is used by clients to specify how the server should filter responses to e.g. sync requests
|
||||
// Specified by: https://spec.matrix.org/v1.2/client-server-api/#filtering
|
||||
type Filter struct {
|
||||
AccountData FilterPart `json:"account_data,omitempty"`
|
||||
AccountData *FilterPart `json:"account_data,omitempty"`
|
||||
EventFields []string `json:"event_fields,omitempty"`
|
||||
EventFormat EventFormat `json:"event_format,omitempty"`
|
||||
Presence FilterPart `json:"presence,omitempty"`
|
||||
Room RoomFilter `json:"room,omitempty"`
|
||||
Presence *FilterPart `json:"presence,omitempty"`
|
||||
Room *RoomFilter `json:"room,omitempty"`
|
||||
|
||||
BeeperToDevice *FilterPart `json:"com.beeper.to_device,omitempty"`
|
||||
}
|
||||
|
||||
// RoomFilter is used to define filtering rules for room events
|
||||
type RoomFilter struct {
|
||||
AccountData FilterPart `json:"account_data,omitempty"`
|
||||
Ephemeral FilterPart `json:"ephemeral,omitempty"`
|
||||
AccountData *FilterPart `json:"account_data,omitempty"`
|
||||
Ephemeral *FilterPart `json:"ephemeral,omitempty"`
|
||||
IncludeLeave bool `json:"include_leave,omitempty"`
|
||||
NotRooms []id.RoomID `json:"not_rooms,omitempty"`
|
||||
Rooms []id.RoomID `json:"rooms,omitempty"`
|
||||
State FilterPart `json:"state,omitempty"`
|
||||
Timeline FilterPart `json:"timeline,omitempty"`
|
||||
State *FilterPart `json:"state,omitempty"`
|
||||
Timeline *FilterPart `json:"timeline,omitempty"`
|
||||
}
|
||||
|
||||
// FilterPart is used to define filtering rules for specific categories of events
|
||||
|
|
@ -69,7 +69,7 @@ func DefaultFilter() Filter {
|
|||
EventFields: nil,
|
||||
EventFormat: "client",
|
||||
Presence: DefaultFilterPart(),
|
||||
Room: RoomFilter{
|
||||
Room: &RoomFilter{
|
||||
AccountData: DefaultFilterPart(),
|
||||
Ephemeral: DefaultFilterPart(),
|
||||
IncludeLeave: false,
|
||||
|
|
@ -82,8 +82,8 @@ func DefaultFilter() Filter {
|
|||
}
|
||||
|
||||
// DefaultFilterPart returns the default filter part used by the Matrix server if no filter is provided in the request
|
||||
func DefaultFilterPart() FilterPart {
|
||||
return FilterPart{
|
||||
func DefaultFilterPart() *FilterPart {
|
||||
return &FilterPart{
|
||||
NotRooms: nil,
|
||||
Rooms: nil,
|
||||
Limit: 20,
|
||||
|
|
|
|||
4
sync.go
4
sync.go
|
|
@ -191,8 +191,8 @@ func (s *DefaultSyncer) OnFailedSync(res *RespSync, err error) (time.Duration, e
|
|||
}
|
||||
|
||||
var defaultFilter = Filter{
|
||||
Room: RoomFilter{
|
||||
Timeline: FilterPart{
|
||||
Room: &RoomFilter{
|
||||
Timeline: &FilterPart{
|
||||
Limit: 50,
|
||||
},
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue