From 6b47a79f71ca35de64a00d072300962102f5c4a9 Mon Sep 17 00:00:00 2001 From: Arran Hobson Sayers Date: Fri, 27 Sep 2024 19:06:23 +0100 Subject: [PATCH] Fix filter --- twickets/filter.go | 4 ++-- twickets/filter_test.go | 18 ++++++++++++++++++ twickets/twickets.go | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/twickets/filter.go b/twickets/filter.go index cfe2306..ab5c544 100644 --- a/twickets/filter.go +++ b/twickets/filter.go @@ -87,8 +87,8 @@ func filterToNumTickets(tickets Tickets, numTickets int) Tickets { return tickets } -func filterToCreatedAfter(tickets Tickets, createdAfter time.Time) Tickets { - if createdAfter.IsZero() { +func FilterTicketsCreatedAfter(tickets Tickets, createdAfter time.Time) Tickets { + if !createdAfter.IsZero() { filteredTickets := make(Tickets, 0, len(tickets)) for _, ticket := range tickets { if ticket.CreatedAt.Time.After(createdAfter) { diff --git a/twickets/filter_test.go b/twickets/filter_test.go index 521aa2f..510b49c 100644 --- a/twickets/filter_test.go +++ b/twickets/filter_test.go @@ -2,6 +2,7 @@ package twickets_test import ( "testing" + "time" "github.com/ahobsonsayers/twitchets/twickets" "github.com/stretchr/testify/require" @@ -56,3 +57,20 @@ func TestFilterName(t *testing.T) { }}) require.Empty(t, filteredTickets) } + +func TestFilterTicketsToCreatedAfter(t *testing.T) { + currentTime := time.Now() + tickets := twickets.Tickets{ + {CreatedAt: twickets.UnixTime{currentTime.Add(-1 * time.Minute)}}, + {CreatedAt: twickets.UnixTime{currentTime.Add(-2 * time.Minute)}}, + {CreatedAt: twickets.UnixTime{currentTime.Add(-4 * time.Minute)}}, + {CreatedAt: twickets.UnixTime{currentTime.Add(-5 * time.Minute)}}, + } + + filteredTickets := twickets.FilterTicketsCreatedAfter( + tickets, + currentTime.Add(-3*time.Minute), + ) + + require.Equal(t, tickets[0:2], filteredTickets) +} diff --git a/twickets/twickets.go b/twickets/twickets.go index d3678ef..9b5b81e 100644 --- a/twickets/twickets.go +++ b/twickets/twickets.go @@ -126,7 +126,7 @@ func (c *Client) FetchTickets(ctx context.Context, input FetchTicketsInput) (Tic // Only return tickets requested tickets = filterToNumTickets(tickets, input.NumTickets) - tickets = filterToCreatedAfter(tickets, input.CreatedAfter) + tickets = FilterTicketsCreatedAfter(tickets, input.CreatedAfter) return tickets, nil }