From a98b260a4ae87af7c85945c46e2a84cac011af8e Mon Sep 17 00:00:00 2001 From: Steve Chaloner Date: Fri, 1 Sep 2023 14:27:02 +0200 Subject: [PATCH 1/3] Support event is in the past flag --- events/event.go | 1 + events/events.go | 3 ++- events_test/update_event_test.go | 30 ++++++++++++++++++++++++++++++ shared/optional.go | 5 +++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 shared/optional.go diff --git a/events/event.go b/events/event.go index 6abb27b..504307c 100644 --- a/events/event.go +++ b/events/event.go @@ -17,4 +17,5 @@ type Event struct { Categories []Category `json:"categories,omitempty"` ObjectCategories map[string]CategoryKey `json:"objectCategories,omitempty"` Channels []Channel `json:"channels,omitempty"` + IsInThePast bool `json:"isInThePast"` } diff --git a/events/events.go b/events/events.go index b62fc97..8faed4c 100644 --- a/events/events.go +++ b/events/events.go @@ -26,7 +26,8 @@ type CreateEventParams struct { } type UpdateEventParams struct { - ChartKey *string `json:"chartKey,omitempty"` + ChartKey *string `json:"chartKey,omitempty"` + IsInThePast *bool `json:"isInThePast,omitempty"` *EventParams } diff --git a/events_test/update_event_test.go b/events_test/update_event_test.go index 3aed56c..cf3305c 100644 --- a/events_test/update_event_test.go +++ b/events_test/update_event_test.go @@ -3,6 +3,7 @@ package events_test import ( "github.com/seatsio/seatsio-go" "github.com/seatsio/seatsio-go/events" + "github.com/seatsio/seatsio-go/shared" "github.com/seatsio/seatsio-go/test_util" "github.com/stretchr/testify/require" "testing" @@ -196,3 +197,32 @@ func TestUpdateEventRemoveCategories(t *testing.T) { require.NoError(t, err) require.NotContains(t, updatedEvent.Categories, category) } + +func TestUpdateEventIsInThePast(t *testing.T) { + t.Parallel() + company := test_util.CreateTestCompany(t) + chartKey := test_util.CreateTestChart(t, company.Admin.SecretKey) + client := seatsio.NewSeatsioClient(test_util.BaseUrl, company.Admin.SecretKey) + event, err := client.Events.Create(&events.CreateEventParams{ChartKey: chartKey}) + require.NoError(t, err) + + err = client.Events.Update(event.Key, &events.UpdateEventParams{IsInThePast: shared.OptionalBool(true)}) + require.NoError(t, err) + updatedEvent, err := client.Events.Retrieve(event.Key) + require.NoError(t, err) + require.True(t, updatedEvent.IsInThePast) + + err = client.Events.Update(event.Key, &events.UpdateEventParams{EventParams: &events.EventParams{ + Name: "bar", + }}) + require.NoError(t, err) + updatedEvent, err = client.Events.Retrieve(event.Key) + require.NoError(t, err) + require.True(t, updatedEvent.IsInThePast) + + err = client.Events.Update(event.Key, &events.UpdateEventParams{IsInThePast: shared.OptionalBool(false)}) + require.NoError(t, err) + updatedEvent, err = client.Events.Retrieve(event.Key) + require.NoError(t, err) + require.False(t, updatedEvent.IsInThePast) +} diff --git a/shared/optional.go b/shared/optional.go new file mode 100644 index 0000000..3d95123 --- /dev/null +++ b/shared/optional.go @@ -0,0 +1,5 @@ +package shared + +func OptionalBool(value bool) *bool { + return &value +} From 6f52fb981a7a1a782c899c3934ecf21296f49817 Mon Sep 17 00:00:00 2001 From: Steve Chaloner Date: Thu, 28 Sep 2023 10:36:18 +0200 Subject: [PATCH 2/3] Only events in a season can be set as in the past --- events_test/update_event_test.go | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/events_test/update_event_test.go b/events_test/update_event_test.go index cf3305c..ef75033 100644 --- a/events_test/update_event_test.go +++ b/events_test/update_event_test.go @@ -3,6 +3,7 @@ package events_test import ( "github.com/seatsio/seatsio-go" "github.com/seatsio/seatsio-go/events" + "github.com/seatsio/seatsio-go/seasons" "github.com/seatsio/seatsio-go/shared" "github.com/seatsio/seatsio-go/test_util" "github.com/stretchr/testify/require" @@ -203,26 +204,17 @@ func TestUpdateEventIsInThePast(t *testing.T) { company := test_util.CreateTestCompany(t) chartKey := test_util.CreateTestChart(t, company.Admin.SecretKey) client := seatsio.NewSeatsioClient(test_util.BaseUrl, company.Admin.SecretKey) - event, err := client.Events.Create(&events.CreateEventParams{ChartKey: chartKey}) + _, err := client.Seasons.CreateSeasonWithOptions(chartKey, &seasons.CreateSeasonParams{EventKeys: []string{"event1"}}) require.NoError(t, err) - err = client.Events.Update(event.Key, &events.UpdateEventParams{IsInThePast: shared.OptionalBool(true)}) + err = client.Events.Update("event1", &events.UpdateEventParams{IsInThePast: shared.OptionalBool(true)}) require.NoError(t, err) - updatedEvent, err := client.Events.Retrieve(event.Key) + updatedEvent, err := client.Events.Retrieve("event1") require.NoError(t, err) require.True(t, updatedEvent.IsInThePast) - err = client.Events.Update(event.Key, &events.UpdateEventParams{EventParams: &events.EventParams{ + err = client.Events.Update("event1", &events.UpdateEventParams{EventParams: &events.EventParams{ Name: "bar", }}) - require.NoError(t, err) - updatedEvent, err = client.Events.Retrieve(event.Key) - require.NoError(t, err) - require.True(t, updatedEvent.IsInThePast) - - err = client.Events.Update(event.Key, &events.UpdateEventParams{IsInThePast: shared.OptionalBool(false)}) - require.NoError(t, err) - updatedEvent, err = client.Events.Retrieve(event.Key) - require.NoError(t, err) - require.False(t, updatedEvent.IsInThePast) + require.EqualError(t, err, "Events in the past cannot be updated") } From 853a434c4926ad95cb08fe8d4d5f304aad7bfbd9 Mon Sep 17 00:00:00 2001 From: Steve Chaloner Date: Thu, 5 Oct 2023 08:52:23 +0200 Subject: [PATCH 3/3] Removed test of immutable events if they are in the past --- events_test/update_event_test.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/events_test/update_event_test.go b/events_test/update_event_test.go index ef75033..5e2e061 100644 --- a/events_test/update_event_test.go +++ b/events_test/update_event_test.go @@ -212,9 +212,4 @@ func TestUpdateEventIsInThePast(t *testing.T) { updatedEvent, err := client.Events.Retrieve("event1") require.NoError(t, err) require.True(t, updatedEvent.IsInThePast) - - err = client.Events.Update("event1", &events.UpdateEventParams{EventParams: &events.EventParams{ - Name: "bar", - }}) - require.EqualError(t, err, "Events in the past cannot be updated") }