From 00129a0f83de8d501e5337ef4e69ce6109eeeec4 Mon Sep 17 00:00:00 2001 From: mroloux Date: Fri, 22 Nov 2024 09:13:46 +0100 Subject: [PATCH] Support overriding or using the season status in batch --- lib/seatsio/domain.rb | 2 ++ .../change_object_status_in_batch_test.rb | 27 ++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/seatsio/domain.rb b/lib/seatsio/domain.rb index f500a44..ac9b73c 100644 --- a/lib/seatsio/domain.rb +++ b/lib/seatsio/domain.rb @@ -418,6 +418,8 @@ def initialize(data) class StatusChangeType CHANGE_STATUS_TO = 'CHANGE_STATUS_TO' RELEASE = 'RELEASE' + OVERRIDE_SEASON_STATUS = 'OVERRIDE_SEASON_STATUS' + USE_SEASON_STATUS = 'USE_SEASON_STATUS' end class EventObjectInfo diff --git a/test/events/change_object_status_in_batch_test.rb b/test/events/change_object_status_in_batch_test.rb index 88bf78b..4c95bb3 100644 --- a/test/events/change_object_status_in_batch_test.rb +++ b/test/events/change_object_status_in_batch_test.rb @@ -84,7 +84,7 @@ def test_rejected_previous_statuses end end - def release_in_batch + def test_release_in_batch chart_key = create_test_chart event = @seatsio.events.create chart_key: chart_key @seatsio.events.book(event.key, ['A-1']) @@ -94,4 +94,29 @@ def release_in_batch assert_equal(Seatsio::EventObjectInfo::FREE, res[0].objects['A-1'].status) assert_equal(Seatsio::EventObjectInfo::FREE, @seatsio.events.retrieve_object_info(key: event.key, label: 'A-1').status) end + + def test_override_season_status_in_batch + chart_key = create_test_chart + season = @seatsio.seasons.create chart_key: chart_key, event_keys: %w[event1] + @seatsio.events.book(season.key, ["A-1"]) + + res = @seatsio.events.change_object_status_in_batch([{ :type => Seatsio::StatusChangeType::OVERRIDE_SEASON_STATUS, :event => "event1", :objects => ['A-1'] }]) + + assert_equal(Seatsio::EventObjectInfo::FREE, res[0].objects['A-1'].status) + a1_status = @seatsio.events.retrieve_object_info(key: "event1", label: 'A-1').status + assert_equal(Seatsio::EventObjectInfo::FREE, a1_status) + end + + def test_use_season_status_in_batch + chart_key = create_test_chart + season = @seatsio.seasons.create chart_key: chart_key, event_keys: %w[event1] + @seatsio.events.book(season.key, ["A-1"]) + @seatsio.events.override_season_object_status(key: "event1", objects: %w(A-1)) + + res = @seatsio.events.change_object_status_in_batch([{ :type => Seatsio::StatusChangeType::USE_SEASON_STATUS, :event => "event1", :objects => ['A-1'] }]) + + assert_equal(Seatsio::EventObjectInfo::BOOKED, res[0].objects['A-1'].status) + a1_status = @seatsio.events.retrieve_object_info(key: "event1", label: 'A-1').status + assert_equal(Seatsio::EventObjectInfo::BOOKED, a1_status) + end end