From e2adc6bc85c4f61a4042d50a9069d6c6b6d0e0c8 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sun, 14 Feb 2021 22:39:41 -0300 Subject: [PATCH] add kind to filter and rebind query. --- query.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/query.go b/query.go index 4c1ea85..614a2ae 100644 --- a/query.go +++ b/query.go @@ -24,6 +24,11 @@ func queryEvents(filter *filter.EventFilter) (events []event.Event, err error) { params = append(params, filter.Author) } + if filter.Kind != 0 { + conditions = append(conditions, "kind = ?") + params = append(params, filter.Kind) + } + if filter.Authors != nil { inkeys := make([]string, 0, len(filter.Authors)) for _, key := range filter.Authors { @@ -58,10 +63,11 @@ func queryEvents(filter *filter.EventFilter) (events []event.Event, err error) { conditions = append(conditions, "true") } - err = db.Select(&events, "SELECT * FROM event WHERE "+ - strings.Join(conditions, " AND ")+ - "ORDER BY created_at LIMIT 100", params..., - ) + query := db.Rebind("SELECT * FROM event WHERE " + + strings.Join(conditions, " AND ") + + "ORDER BY created_at LIMIT 100") + + err = db.Select(&events, query, params...) if err != nil && err != sql.ErrNoRows { log.Warn().Err(err).Interface("filter", filter).Msg("failed to fetch events") err = fmt.Errorf("failed to fetch events: %w", err)