mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-16 18:43:10 -06:00
Remove GetFilter from snapshot
This commit is contained in:
parent
3aa0071676
commit
6650553402
|
|
@ -45,14 +45,8 @@ func GetFilter(
|
||||||
return jsonerror.InternalServerError()
|
return jsonerror.InternalServerError()
|
||||||
}
|
}
|
||||||
|
|
||||||
snapshot, err := syncDB.NewDatabaseSnapshot(req.Context())
|
|
||||||
if err != nil {
|
|
||||||
return jsonerror.InternalServerError()
|
|
||||||
}
|
|
||||||
defer snapshot.Rollback() // nolint:errcheck
|
|
||||||
|
|
||||||
filter := gomatrixserverlib.DefaultFilter()
|
filter := gomatrixserverlib.DefaultFilter()
|
||||||
if err := snapshot.GetFilter(req.Context(), &filter, localpart, filterID); err != nil {
|
if err := syncDB.GetFilter(req.Context(), &filter, localpart, filterID); err != nil {
|
||||||
//TODO better error handling. This error message is *probably* right,
|
//TODO better error handling. This error message is *probably* right,
|
||||||
// but if there are obscure db errors, this will also be returned,
|
// but if there are obscure db errors, this will also be returned,
|
||||||
// even though it is not correct.
|
// even though it is not correct.
|
||||||
|
|
|
||||||
|
|
@ -90,10 +90,6 @@ type DatabaseSnapshot interface {
|
||||||
// SendToDeviceUpdatesForSync returns a list of send-to-device updates. It returns the
|
// SendToDeviceUpdatesForSync returns a list of send-to-device updates. It returns the
|
||||||
// relevant events within the given ranges for the supplied user ID and device ID.
|
// relevant events within the given ranges for the supplied user ID and device ID.
|
||||||
SendToDeviceUpdatesForSync(ctx context.Context, userID, deviceID string, from, to types.StreamPosition) (pos types.StreamPosition, events []types.SendToDeviceEvent, err error)
|
SendToDeviceUpdatesForSync(ctx context.Context, userID, deviceID string, from, to types.StreamPosition) (pos types.StreamPosition, events []types.SendToDeviceEvent, err error)
|
||||||
// GetFilter looks up the filter associated with a given local user and filter ID
|
|
||||||
// and populates the target filter. Otherwise returns an error if no such filter exists
|
|
||||||
// or if there was an error talking to the database.
|
|
||||||
GetFilter(ctx context.Context, target *gomatrixserverlib.Filter, localpart string, filterID string) error
|
|
||||||
// GetRoomReceipts gets all receipts for a given roomID
|
// GetRoomReceipts gets all receipts for a given roomID
|
||||||
GetRoomReceipts(ctx context.Context, roomIDs []string, streamPos types.StreamPosition) ([]types.OutputReceiptEvent, error)
|
GetRoomReceipts(ctx context.Context, roomIDs []string, streamPos types.StreamPosition) ([]types.OutputReceiptEvent, error)
|
||||||
SelectContextEvent(ctx context.Context, roomID, eventID string) (int, gomatrixserverlib.HeaderedEvent, error)
|
SelectContextEvent(ctx context.Context, roomID, eventID string) (int, gomatrixserverlib.HeaderedEvent, error)
|
||||||
|
|
@ -162,6 +158,10 @@ type Database interface {
|
||||||
// CleanSendToDeviceUpdates removes all send-to-device messages BEFORE the specified
|
// CleanSendToDeviceUpdates removes all send-to-device messages BEFORE the specified
|
||||||
// from position, preventing the send-to-device table from growing indefinitely.
|
// from position, preventing the send-to-device table from growing indefinitely.
|
||||||
CleanSendToDeviceUpdates(ctx context.Context, userID, deviceID string, before types.StreamPosition) (err error)
|
CleanSendToDeviceUpdates(ctx context.Context, userID, deviceID string, before types.StreamPosition) (err error)
|
||||||
|
// GetFilter looks up the filter associated with a given local user and filter ID
|
||||||
|
// and populates the target filter. Otherwise returns an error if no such filter exists
|
||||||
|
// or if there was an error talking to the database.
|
||||||
|
GetFilter(ctx context.Context, target *gomatrixserverlib.Filter, localpart string, filterID string) error
|
||||||
// PutFilter puts the passed filter into the database.
|
// PutFilter puts the passed filter into the database.
|
||||||
// Returns the filterID as a string. Otherwise returns an error if something
|
// Returns the filterID as a string. Otherwise returns an error if something
|
||||||
// goes wrong.
|
// goes wrong.
|
||||||
|
|
|
||||||
|
|
@ -253,12 +253,6 @@ func (d *DatabaseSnapshot) StreamToTopologicalPosition(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DatabaseSnapshot) GetFilter(
|
|
||||||
ctx context.Context, target *gomatrixserverlib.Filter, localpart string, filterID string,
|
|
||||||
) error {
|
|
||||||
return d.Filter.SelectFilter(ctx, d.txn, target, localpart, filterID)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetBackwardTopologyPos retrieves the backward topology position, i.e. the position of the
|
// GetBackwardTopologyPos retrieves the backward topology position, i.e. the position of the
|
||||||
// oldest event in the room's topology.
|
// oldest event in the room's topology.
|
||||||
func (d *DatabaseSnapshot) GetBackwardTopologyPos(
|
func (d *DatabaseSnapshot) GetBackwardTopologyPos(
|
||||||
|
|
|
||||||
|
|
@ -333,6 +333,12 @@ func (d *Database) updateRoomState(
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *Database) GetFilter(
|
||||||
|
ctx context.Context, target *gomatrixserverlib.Filter, localpart string, filterID string,
|
||||||
|
) error {
|
||||||
|
return d.Filter.SelectFilter(ctx, nil, target, localpart, filterID)
|
||||||
|
}
|
||||||
|
|
||||||
func (d *Database) PutFilter(
|
func (d *Database) PutFilter(
|
||||||
ctx context.Context, localpart string, filter *gomatrixserverlib.Filter,
|
ctx context.Context, localpart string, filter *gomatrixserverlib.Filter,
|
||||||
) (string, error) {
|
) (string, error) {
|
||||||
|
|
|
||||||
|
|
@ -48,13 +48,6 @@ func newSyncRequest(req *http.Request, device userapi.Device, syncDB storage.Dat
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
snapshot, err := syncDB.NewDatabaseSnapshot(req.Context())
|
|
||||||
if err != nil {
|
|
||||||
logrus.WithError(err).Error("Failed to acquire database snapshot for sync request")
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer snapshot.Rollback() // nolint:errcheck
|
|
||||||
|
|
||||||
// Create a default filter and apply a stored filter on top of it (if specified)
|
// Create a default filter and apply a stored filter on top of it (if specified)
|
||||||
filter := gomatrixserverlib.DefaultFilter()
|
filter := gomatrixserverlib.DefaultFilter()
|
||||||
filterQuery := req.URL.Query().Get("filter")
|
filterQuery := req.URL.Query().Get("filter")
|
||||||
|
|
@ -71,7 +64,7 @@ func newSyncRequest(req *http.Request, device userapi.Device, syncDB storage.Dat
|
||||||
util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
|
util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
|
||||||
return nil, fmt.Errorf("gomatrixserverlib.SplitID: %w", err)
|
return nil, fmt.Errorf("gomatrixserverlib.SplitID: %w", err)
|
||||||
}
|
}
|
||||||
if err := snapshot.GetFilter(req.Context(), &filter, localpart, filterQuery); err != nil && err != sql.ErrNoRows {
|
if err := syncDB.GetFilter(req.Context(), &filter, localpart, filterQuery); err != nil && err != sql.ErrNoRows {
|
||||||
util.GetLogger(req.Context()).WithError(err).Error("syncDB.GetFilter failed")
|
util.GetLogger(req.Context()).WithError(err).Error("syncDB.GetFilter failed")
|
||||||
return nil, fmt.Errorf("syncDB.GetFilter: %w", err)
|
return nil, fmt.Errorf("syncDB.GetFilter: %w", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue