mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 23:47:33 +00:00
feat: add time range events filter (#7005)
* feat(console): add time range events filter * deprecate creation_date, use oneof filter * use range or from * implement api * fix timestamp format * translate * styles * lint * integration tests * fix until date * rearrange sorting control * sort creation date * fix events e2e test * Update console/src/app/modules/filter-events/filter-events.component.html Co-authored-by: Max Peintner <max@caos.ch> * Update console/src/app/modules/filter-events/filter-events.component.html Co-authored-by: Max Peintner <max@caos.ch> * Update console/src/app/modules/filter-events/filter-events.component.html Co-authored-by: Max Peintner <max@caos.ch> * lint * lint * don't use utc call time --------- Co-authored-by: Max Peintner <max@caos.ch> Co-authored-by: Silvan <silvan.reusser@gmail.com>
This commit is contained in:
@@ -2,6 +2,7 @@ package admin
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/zitadel/zitadel/internal/api/authz"
|
||||
"github.com/zitadel/zitadel/internal/eventstore"
|
||||
@@ -36,6 +37,25 @@ func (s *Server) ListAggregateTypes(ctx context.Context, in *admin_pb.ListAggreg
|
||||
}
|
||||
|
||||
func eventRequestToFilter(ctx context.Context, req *admin_pb.ListEventsRequest) (*eventstore.SearchQueryBuilder, error) {
|
||||
var fromTime, sinceTime, untilTime time.Time
|
||||
// We ignore the deprecation warning here because we still need to support the deprecated field.
|
||||
//nolint:staticcheck
|
||||
if creationDatePb := req.GetCreationDate(); creationDatePb != nil {
|
||||
fromTime = creationDatePb.AsTime()
|
||||
}
|
||||
if fromTimePb := req.GetFrom(); fromTimePb != nil {
|
||||
fromTime = fromTimePb.AsTime()
|
||||
}
|
||||
if timeRange := req.GetRange(); timeRange != nil {
|
||||
// If range is set, we ignore the from and the deprecated creation_date fields
|
||||
fromTime = time.Time{}
|
||||
if timeSincePb := timeRange.GetSince(); timeSincePb != nil {
|
||||
sinceTime = timeSincePb.AsTime()
|
||||
}
|
||||
if timeUntilPb := timeRange.GetUntil(); timeUntilPb != nil {
|
||||
untilTime = timeUntilPb.AsTime()
|
||||
}
|
||||
}
|
||||
eventTypes := make([]eventstore.EventType, len(req.EventTypes))
|
||||
for i, eventType := range req.EventTypes {
|
||||
eventTypes[i] = eventstore.EventType(eventType)
|
||||
@@ -60,7 +80,9 @@ func eventRequestToFilter(ctx context.Context, req *admin_pb.ListEventsRequest)
|
||||
AwaitOpenTransactions().
|
||||
ResourceOwner(req.ResourceOwner).
|
||||
EditorUser(req.EditorUserId).
|
||||
SequenceGreater(req.Sequence)
|
||||
SequenceGreater(req.Sequence).
|
||||
CreationDateAfter(sinceTime).
|
||||
CreationDateBefore(untilTime)
|
||||
|
||||
if len(aggregateIDs) > 0 || len(aggregateTypes) > 0 || len(eventTypes) > 0 {
|
||||
builder.AddQuery().
|
||||
@@ -72,10 +94,9 @@ func eventRequestToFilter(ctx context.Context, req *admin_pb.ListEventsRequest)
|
||||
|
||||
if req.GetAsc() {
|
||||
builder.OrderAsc()
|
||||
builder.CreationDateAfter(req.CreationDate.AsTime())
|
||||
builder.CreationDateAfter(fromTime)
|
||||
} else {
|
||||
builder.CreationDateBefore(req.CreationDate.AsTime())
|
||||
builder.CreationDateBefore(fromTime)
|
||||
}
|
||||
|
||||
return builder, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user