fix empty CHATHISTORY TARGETS

Currently, if times sent to `CHATHISTORY TARGETS` are reversed (e.g.
current time occurs first, and initial time occurs second) then no
targets will be returned from the database backend.

Changes have been tested with the sqlite backend.
This commit is contained in:
Calvin Lee 2023-10-11 13:42:20 +00:00 committed by Simon Ser
parent b49552ed5b
commit 072e15d1e8
1 changed files with 18 additions and 6 deletions

View File

@ -89,12 +89,24 @@ func (ms *dbMessageStore) Append(network *database.Network, entity string, msg *
}
func (ms *dbMessageStore) ListTargets(ctx context.Context, network *database.Network, start, end time.Time, limit int, events bool) ([]ChatHistoryTarget, error) {
l, err := ms.db.ListMessageLastPerTarget(ctx, network.ID, &database.MessageOptions{
AfterTime: start,
BeforeTime: end,
Limit: limit,
Events: events,
})
var opts *database.MessageOptions
if start.Before(end) {
opts = &database.MessageOptions{
AfterTime: start,
BeforeTime: end,
Limit: limit,
Events: events,
}
} else {
opts = &database.MessageOptions{
AfterTime: end,
BeforeTime: start,
Limit: limit,
Events: events,
TakeLast: true,
}
}
l, err := ms.db.ListMessageLastPerTarget(ctx, network.ID, opts);
if err != nil {
return nil, err
}