From e0c07d3e1d81a592c32d00418ee88e62520074e5 Mon Sep 17 00:00:00 2001 From: mroloux Date: Tue, 7 Apr 2026 09:22:20 +0200 Subject: [PATCH 1/9] Support assigning area places to channels --- src/main/java/seatsio/events/Channel.java | 4 +++- .../seatsio/events/ChannelCreationParams.java | 8 +++++-- src/main/java/seatsio/events/Channels.java | 5 +++-- .../java/seatsio/events/BookObjectsTest.java | 4 ++-- .../ChangeBestAvailableObjectStatusTest.java | 4 ++-- .../events/ChangeObjectStatusInBatchTest.java | 5 +++-- .../events/ChangeObjectStatusTest.java | 4 ++-- .../java/seatsio/events/CreateEventTest.java | 9 ++++---- .../java/seatsio/events/CreateEventsTest.java | 8 +++---- .../java/seatsio/events/HoldObjectsTest.java | 4 ++-- .../seatsio/events/ReleaseObjectsTest.java | 4 ++-- .../events/channels/AddChannelTest.java | 21 ++++++++++--------- .../channels/AddObjectsToChannelTest.java | 9 ++++---- .../events/channels/RemoveChannelTest.java | 7 ++++--- .../RemoveObjectsFromChannelTest.java | 5 +++-- .../events/channels/ReplaceChannelsTest.java | 17 ++++++++------- .../events/channels/UpdateChannelTest.java | 13 ++++++------ .../events/EventReportsSummaryTest.java | 2 +- .../reports/events/EventReportsTest.java | 6 +++--- .../seatsio/seasons/CreateSeasonTest.java | 4 ++-- 20 files changed, 79 insertions(+), 64 deletions(-) diff --git a/src/main/java/seatsio/events/Channel.java b/src/main/java/seatsio/events/Channel.java index 9e6d0c70..ebe2caac 100644 --- a/src/main/java/seatsio/events/Channel.java +++ b/src/main/java/seatsio/events/Channel.java @@ -2,11 +2,12 @@ import com.google.gson.JsonObject; +import java.util.Map; import java.util.Set; import static seatsio.json.JsonObjectBuilder.aJsonObject; -public record Channel(String key, String name, String color, Integer index, Set objects) { +public record Channel(String key, String name, String color, Integer index, Set objects, Map areaPlaces) { public JsonObject toJson() { return aJsonObject() @@ -15,6 +16,7 @@ public JsonObject toJson() { .withProperty("color", color) .withPropertyIfNotNull("index", index) .withPropertyIfNotNull("objects", objects) + .withPropertyIfNotNull("areaPlaces", areaPlaces) .build(); } } diff --git a/src/main/java/seatsio/events/ChannelCreationParams.java b/src/main/java/seatsio/events/ChannelCreationParams.java index b5e2baa1..07e27833 100644 --- a/src/main/java/seatsio/events/ChannelCreationParams.java +++ b/src/main/java/seatsio/events/ChannelCreationParams.java @@ -2,11 +2,12 @@ import com.google.gson.JsonObject; +import java.util.Map; import java.util.Set; import static seatsio.json.JsonObjectBuilder.aJsonObject; -public record ChannelCreationParams(String key, String name, String color, Integer index, Set objects) { +public record ChannelCreationParams(String key, String name, String color, Integer index, Set objects, Map areaPlaces) { public JsonObject toJson() { return aJsonObject() @@ -15,6 +16,7 @@ public JsonObject toJson() { .withProperty("color", color) .withPropertyIfNotNull("index", index) .withPropertyIfNotNull("objects", objects) + .withPropertyIfNotNull("areaPlaces", areaPlaces) .build(); } @@ -25,6 +27,7 @@ public static class Builder { private String color; private Integer index; private Set objects; + private Map areaPlaces; public Builder withKey(String channelKey) { this.key = channelKey; @@ -57,7 +60,8 @@ public ChannelCreationParams build() { this.name, this.color, this.index, - this.objects + this.objects, + this.areaPlaces ); } } diff --git a/src/main/java/seatsio/events/Channels.java b/src/main/java/seatsio/events/Channels.java index b501776b..10299092 100644 --- a/src/main/java/seatsio/events/Channels.java +++ b/src/main/java/seatsio/events/Channels.java @@ -5,6 +5,7 @@ import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Set; import static java.util.stream.Collectors.toList; @@ -21,8 +22,8 @@ public Channels(String baseUrl, UnirestWrapper unirest) { this.unirest = unirest; } - public void add(String eventKey, String channelKey, String name, String color, Integer index, Set objects) { - this.add(eventKey, List.of(new ChannelCreationParams(channelKey, name, color, index, objects))); + public void add(String eventKey, String channelKey, String name, String color, Integer index, Set objects, Map areaPlaces) { + this.add(eventKey, List.of(new ChannelCreationParams(channelKey, name, color, index, objects, areaPlaces))); } public void add(String eventKey, Collection paramsList) { diff --git a/src/test/java/seatsio/events/BookObjectsTest.java b/src/test/java/seatsio/events/BookObjectsTest.java index 84f97bb8..83a2243c 100644 --- a/src/test/java/seatsio/events/BookObjectsTest.java +++ b/src/test/java/seatsio/events/BookObjectsTest.java @@ -105,7 +105,7 @@ public void keepExtraData() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); client.events.book(event.key(), List.of("A-1"), null, null, true, null, Set.of("channelKey1")); @@ -117,7 +117,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); client.events.book(event.key(), List.of("A-1"), null, null, null, true, null); diff --git a/src/test/java/seatsio/events/ChangeBestAvailableObjectStatusTest.java b/src/test/java/seatsio/events/ChangeBestAvailableObjectStatusTest.java index e949fa1a..134dcbe1 100644 --- a/src/test/java/seatsio/events/ChangeBestAvailableObjectStatusTest.java +++ b/src/test/java/seatsio/events/ChangeBestAvailableObjectStatusTest.java @@ -181,7 +181,7 @@ public void keepExtraDataNotPassIn() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("B-6")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("B-6"), Map.of()) ))); BestAvailableResult bestAvailableResult = client.events.changeObjectStatus(event.key(), new BestAvailableParams(1), "foo", null, null, null, null, Set.of("channelKey1")); @@ -193,7 +193,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-5")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-5"), Map.of()) ))); BestAvailableResult bestAvailableResult = client.events.changeObjectStatus(event.key(), new BestAvailableParams(1), "foo", null, null, null, true, null); diff --git a/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java b/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java index dfb10ca0..86807b0e 100644 --- a/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java +++ b/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java @@ -6,6 +6,7 @@ import seatsio.seasons.CreateSeasonParams; import java.util.List; +import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; @@ -38,7 +39,7 @@ public void test() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()) ))); List result = client.events.changeObjectStatus(List.of( @@ -52,7 +53,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()) ))); List result = client.events.changeObjectStatus(List.of( diff --git a/src/test/java/seatsio/events/ChangeObjectStatusTest.java b/src/test/java/seatsio/events/ChangeObjectStatusTest.java index 1ffc613c..f8b5a494 100644 --- a/src/test/java/seatsio/events/ChangeObjectStatusTest.java +++ b/src/test/java/seatsio/events/ChangeObjectStatusTest.java @@ -202,7 +202,7 @@ public void extraData() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); client.events.changeObjectStatus(event.key(), List.of("A-1"), "someStatus", null, null, true, null, Set.of("channelKey1")); @@ -214,7 +214,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); client.events.changeObjectStatus(event.key(), List.of("A-1"), "someStatus", null, null, null, true, null); diff --git a/src/test/java/seatsio/events/CreateEventTest.java b/src/test/java/seatsio/events/CreateEventTest.java index 1f402b3b..5b0db402 100644 --- a/src/test/java/seatsio/events/CreateEventTest.java +++ b/src/test/java/seatsio/events/CreateEventTest.java @@ -1,6 +1,7 @@ package seatsio.events; import org.junit.jupiter.api.Test; +import seatsio.SeatsioClient; import seatsio.SeatsioClientTest; import seatsio.charts.Category; import seatsio.charts.CategoryKey; @@ -102,15 +103,15 @@ public void categoriesCanBePassedIn() { public void channelsCanBePassedIn() { String chartKey = createTestChart(); List channels = List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) ); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(channels)); assertThat(event.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) ); } diff --git a/src/test/java/seatsio/events/CreateEventsTest.java b/src/test/java/seatsio/events/CreateEventsTest.java index 726cf9ee..4b217f94 100644 --- a/src/test/java/seatsio/events/CreateEventsTest.java +++ b/src/test/java/seatsio/events/CreateEventsTest.java @@ -118,8 +118,8 @@ public void dateCanBePassedIn() { public void channelsCanBePassedIn() { String chartKey = createTestChart(); List channels = List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) ); List events = client.events.create(chartKey, List.of( @@ -129,8 +129,8 @@ public void channelsCanBePassedIn() { assertThat(events) .extracting("channels") .containsExactly(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) )); } diff --git a/src/test/java/seatsio/events/HoldObjectsTest.java b/src/test/java/seatsio/events/HoldObjectsTest.java index 826844a1..c93e1ec4 100644 --- a/src/test/java/seatsio/events/HoldObjectsTest.java +++ b/src/test/java/seatsio/events/HoldObjectsTest.java @@ -69,7 +69,7 @@ public void labels() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); HoldToken holdToken = client.holdTokens.create(); @@ -82,7 +82,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); HoldToken holdToken = client.holdTokens.create(); diff --git a/src/test/java/seatsio/events/ReleaseObjectsTest.java b/src/test/java/seatsio/events/ReleaseObjectsTest.java index 0e05aa51..e97c3dff 100644 --- a/src/test/java/seatsio/events/ReleaseObjectsTest.java +++ b/src/test/java/seatsio/events/ReleaseObjectsTest.java @@ -70,7 +70,7 @@ public void keepExtraData() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); client.events.book(event.key(), List.of("A-1"), null, null, true, null, Set.of("channelKey1")); @@ -84,7 +84,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); client.events.book(event.key(), List.of("A-1"), null, null, true, true, null); diff --git a/src/test/java/seatsio/events/channels/AddChannelTest.java b/src/test/java/seatsio/events/channels/AddChannelTest.java index a52ff6f2..649d74fa 100644 --- a/src/test/java/seatsio/events/channels/AddChannelTest.java +++ b/src/test/java/seatsio/events/channels/AddChannelTest.java @@ -7,6 +7,7 @@ import seatsio.events.Event; import java.util.List; +import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; @@ -18,13 +19,13 @@ public void addChannel() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); - client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3")); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); + client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3"), null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3")) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3"), Map.of()) ); } @@ -43,8 +44,8 @@ public void addChannels() { Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3")) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3"), Map.of()) ); } @@ -53,11 +54,11 @@ public void indexIsOptional() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", null, Set.of("A-1", "A-2")); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", null, Set.of("A-1", "A-2"), null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", null, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF98", null, Set.of("A-1", "A-2"), Map.of()) ); } @@ -66,11 +67,11 @@ public void objectsAreOptional() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, null, null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of()) ); } diff --git a/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java b/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java index a550b303..24dbee95 100644 --- a/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java +++ b/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java @@ -5,6 +5,7 @@ import seatsio.events.Channel; import seatsio.events.Event; +import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; @@ -15,15 +16,15 @@ public class AddObjectsToChannelTest extends SeatsioClientTest { public void test() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); - client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3", "A-4")); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); + client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3", "A-4"), null); client.events.channels.addObjects(event.key(), "channelKey1", Set.of("A-3", "A-4")); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of(), Map.of()) ); } } diff --git a/src/test/java/seatsio/events/channels/RemoveChannelTest.java b/src/test/java/seatsio/events/channels/RemoveChannelTest.java index 15b6564b..45598f01 100644 --- a/src/test/java/seatsio/events/channels/RemoveChannelTest.java +++ b/src/test/java/seatsio/events/channels/RemoveChannelTest.java @@ -9,6 +9,7 @@ import java.util.HashSet; import java.util.List; +import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; @@ -18,15 +19,15 @@ public class RemoveChannelTest extends SeatsioClientTest { public void removeChannel() { Chart chart = client.charts.create(); Event event = client.events.create(chart.key(), new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, null), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, null) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, null, null), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, null, null) ))); client.events.channels.remove(event.key(), "channelKey2"); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, new HashSet<>()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, new HashSet<>(), Map.of()) ); } diff --git a/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java b/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java index db94ddbc..dc33c5d6 100644 --- a/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java +++ b/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java @@ -5,6 +5,7 @@ import seatsio.events.Channel; import seatsio.events.Event; +import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; @@ -15,13 +16,13 @@ public class RemoveObjectsFromChannelTest extends SeatsioClientTest { public void test() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4")); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4"), null); client.events.channels.removeObjects(event.key(), "channelKey1", Set.of("A-3", "A-4")); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()) ); } } diff --git a/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java b/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java index 73c6e8b6..e0afcbec 100644 --- a/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java +++ b/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java @@ -8,6 +8,7 @@ import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; @@ -20,14 +21,14 @@ public void replaceChannels() { Event event = client.events.create(chartKey); client.events.channels.replace(event.key(), List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) )); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) ); } @@ -37,14 +38,14 @@ public void replaceChannelsWithOnlyRequiredFields() { Event event = client.events.create(chart.key()); client.events.channels.replace(event.key(), List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", null, null), - new Channel("channelKey2", "channel 2", "#FFFF99", null, null) + new Channel("channelKey1", "channel 1", "#FFFF99", null, null, null), + new Channel("channelKey2", "channel 2", "#FFFF99", null, null, null) )); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", null, new HashSet<>()), - new Channel("channelKey2", "channel 2", "#FFFF99", null, new HashSet<>()) + new Channel("channelKey1", "channel 1", "#FFFF99", null, new HashSet<>(), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", null, new HashSet<>(), Map.of()) ); } diff --git a/src/test/java/seatsio/events/channels/UpdateChannelTest.java b/src/test/java/seatsio/events/channels/UpdateChannelTest.java index 1074d070..5342fda1 100644 --- a/src/test/java/seatsio/events/channels/UpdateChannelTest.java +++ b/src/test/java/seatsio/events/channels/UpdateChannelTest.java @@ -5,6 +5,7 @@ import seatsio.events.Channel; import seatsio.events.Event; +import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; @@ -15,13 +16,13 @@ public class UpdateChannelTest extends SeatsioClientTest { public void updateName() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); client.events.channels.update(event.key(), "channelKey1", "channel 2", null, null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 2", "#FFFF98", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 2", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()) ); } @@ -29,13 +30,13 @@ public void updateName() { public void updateColor() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); client.events.channels.update(event.key(), "channelKey1", null, "#FFFF99", null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ); } @@ -43,13 +44,13 @@ public void updateColor() { public void updateObjects() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); client.events.channels.update(event.key(), "channelKey1", null, null, Set.of("A-3")); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-3")) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-3"), Map.of()) ); } } diff --git a/src/test/java/seatsio/reports/events/EventReportsSummaryTest.java b/src/test/java/seatsio/reports/events/EventReportsSummaryTest.java index b818eb06..2ad5929f 100644 --- a/src/test/java/seatsio/reports/events/EventReportsSummaryTest.java +++ b/src/test/java/seatsio/reports/events/EventReportsSummaryTest.java @@ -361,7 +361,7 @@ public void summaryByAvailabilityReason() { public void summaryByChannel() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); Map report = client.eventReports.summaryByChannel(event.key()); diff --git a/src/test/java/seatsio/reports/events/EventReportsTest.java b/src/test/java/seatsio/reports/events/EventReportsTest.java index a6c76b1b..3962c8d6 100644 --- a/src/test/java/seatsio/reports/events/EventReportsTest.java +++ b/src/test/java/seatsio/reports/events/EventReportsTest.java @@ -22,7 +22,7 @@ public class EventReportsTest extends SeatsioClientTest { public void reportItemProperties() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1")) + new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()) ))); Map extraData = Map.of("foo", "bar"); client.events.book(event.key(), asList(new ObjectProperties("A-1", "ticketType1", extraData)), null, "order1", null, true, null); @@ -398,7 +398,7 @@ public void bySpecificAvailabilityReason() { public void byChannel() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); Map> report = client.eventReports.byChannel(event.key()); @@ -411,7 +411,7 @@ public void byChannel() { public void bySpecificChannel() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) + new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) ))); List report = client.eventReports.byChannel(event.key(), "channel1"); diff --git a/src/test/java/seatsio/seasons/CreateSeasonTest.java b/src/test/java/seatsio/seasons/CreateSeasonTest.java index 2ae94ebc..4e72ae18 100644 --- a/src/test/java/seatsio/seasons/CreateSeasonTest.java +++ b/src/test/java/seatsio/seasons/CreateSeasonTest.java @@ -104,8 +104,8 @@ public void tableBookingConfigInheritCanBePassedIn() { public void channelsCanBePassedIn() { String chartKey = createTestChart(); List channels = List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) ); Season season = client.seasons.create(chartKey, new CreateSeasonParams().channels(channels)); From 9f9af28c5d41b721644bfb90bd7faa9d7f1ecd04 Mon Sep 17 00:00:00 2001 From: mroloux Date: Tue, 19 May 2026 10:47:52 +0200 Subject: [PATCH 2/9] Channels.addObjects and Channels.removeObjects should support area places --- src/main/java/seatsio/events/Channels.java | 10 +++--- .../channels/AddObjectsToChannelTest.java | 35 +++++++++++++++++-- .../RemoveObjectsFromChannelTest.java | 33 +++++++++++++++-- 3 files changed, 70 insertions(+), 8 deletions(-) diff --git a/src/main/java/seatsio/events/Channels.java b/src/main/java/seatsio/events/Channels.java index 10299092..59d09b2c 100644 --- a/src/main/java/seatsio/events/Channels.java +++ b/src/main/java/seatsio/events/Channels.java @@ -52,22 +52,24 @@ public void update(String eventKey, String channelKey, String name, String color ); } - public void addObjects(String eventKey, String channelKey, Set objects) { + public void addObjects(String eventKey, String channelKey, Set objects, Map areaPlaces) { unirest.stringResponse(UnirestWrapper.post(baseUrl + "/events/{eventKey}/channels/{channelKey}/objects") .routeParam("eventKey", eventKey) .routeParam("channelKey", channelKey) .body(aJsonObject() - .withProperty("objects", objects) + .withPropertyIfNotNull("objects", objects) + .withPropertyIfNotNull("areaPlaces", areaPlaces) .buildAsString()) ); } - public void removeObjects(String eventKey, String channelKey, Set objects) { + public void removeObjects(String eventKey, String channelKey, Set objects, Map areaPlaces) { unirest.stringResponse(UnirestWrapper.delete(baseUrl + "/events/{eventKey}/channels/{channelKey}/objects") .routeParam("eventKey", eventKey) .routeParam("channelKey", channelKey) .body(aJsonObject() - .withProperty("objects", objects) + .withPropertyIfNotNull("objects", objects) + .withPropertyIfNotNull("areaPlaces", areaPlaces) .buildAsString()) ); } diff --git a/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java b/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java index 24dbee95..5e090edf 100644 --- a/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java +++ b/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java @@ -13,13 +13,13 @@ public class AddObjectsToChannelTest extends SeatsioClientTest { @Test - public void test() { + public void addObjects() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3", "A-4"), null); - client.events.channels.addObjects(event.key(), "channelKey1", Set.of("A-3", "A-4")); + client.events.channels.addObjects(event.key(), "channelKey1", Set.of("A-3", "A-4"), null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( @@ -27,4 +27,35 @@ public void test() { new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of(), Map.of()) ); } + + + @Test + public void addAreaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of("GA1", 10)); + client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of(), Map.of("GA1", 5)); + + client.events.channels.addObjects(event.key(), "channelKey1", null, Map.of("GA1", 20)); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of("GA1", 30)), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of(), Map.of("GA1", 5)) + ); + } + + @Test + public void addBothObjectsAndAreaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1"), Map.of("GA1", 10)); + + client.events.channels.addObjects(event.key(), "channelKey1", Set.of("A-2", "A-3"), Map.of("GA1", 5)); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3"), Map.of("GA1", 15)) + ); + } } diff --git a/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java b/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java index dc33c5d6..031625bc 100644 --- a/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java +++ b/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java @@ -13,16 +13,45 @@ public class RemoveObjectsFromChannelTest extends SeatsioClientTest { @Test - public void test() { + public void removeObjects() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4"), null); - client.events.channels.removeObjects(event.key(), "channelKey1", Set.of("A-3", "A-4")); + client.events.channels.removeObjects(event.key(), "channelKey1", Set.of("A-3", "A-4"), null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()) ); } + + + @Test + public void removeAreaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of("GA1", 30)); + + client.events.channels.removeObjects(event.key(), "channelKey1", null, Map.of("GA1", 10)); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of("GA1", 20)) + ); + } + + @Test + public void removeBothObjectsAndAreaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3"), Map.of("GA1", 30)); + + client.events.channels.removeObjects(event.key(), "channelKey1", Set.of("A-2", "A-3"), Map.of("GA1", 10)); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1"), Map.of("GA1", 20)) + ); + } } From 6865b65ac3831a5d989f4fa6392f5899315ad4d6 Mon Sep 17 00:00:00 2001 From: mroloux Date: Tue, 19 May 2026 13:21:25 +0200 Subject: [PATCH 3/9] Retain backwards compatibility --- gradlew.bat | 164 +++++++++--------- src/main/java/seatsio/events/Channel.java | 4 + src/main/java/seatsio/events/Channels.java | 17 ++ .../ChangeBestAvailableObjectStatusTest.java | 4 +- .../java/seatsio/events/CreateEventTest.java | 8 +- .../java/seatsio/events/CreateEventsTest.java | 8 +- .../events/channels/AddChannelTest.java | 48 +++-- .../channels/AddObjectsToChannelTest.java | 11 +- .../events/channels/RemoveChannelTest.java | 2 +- .../RemoveObjectsFromChannelTest.java | 7 +- .../events/channels/ReplaceChannelsTest.java | 27 ++- .../events/channels/UpdateChannelTest.java | 26 ++- .../events/EventReportsSummaryTest.java | 2 +- .../reports/events/EventReportsTest.java | 6 +- 14 files changed, 204 insertions(+), 130 deletions(-) diff --git a/gradlew.bat b/gradlew.bat index aa5f10b0..24c62d56 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,82 +1,82 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables, and ensure extensions are enabled -setlocal EnableExtensions - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -"%COMSPEC%" /c exit 1 - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -"%COMSPEC%" /c exit 1 - -:execute -@rem Setup the command line - - - -@rem Execute Gradle -@rem endlocal doesn't take effect until after the line is parsed and variables are expanded -@rem which allows us to clear the local environment before executing the java command -endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel - -:exitWithErrorLevel -@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts -"%COMSPEC%" /c exit %ERRORLEVEL% +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel + +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/src/main/java/seatsio/events/Channel.java b/src/main/java/seatsio/events/Channel.java index ebe2caac..a088ba21 100644 --- a/src/main/java/seatsio/events/Channel.java +++ b/src/main/java/seatsio/events/Channel.java @@ -9,6 +9,10 @@ public record Channel(String key, String name, String color, Integer index, Set objects, Map areaPlaces) { + public Channel(String key, String name, String color, Integer index, Set objects) { + this(key, name, color, index, objects, Map.of()); + } + public JsonObject toJson() { return aJsonObject() .withProperty("key", key) diff --git a/src/main/java/seatsio/events/Channels.java b/src/main/java/seatsio/events/Channels.java index 59d09b2c..470dc3cc 100644 --- a/src/main/java/seatsio/events/Channels.java +++ b/src/main/java/seatsio/events/Channels.java @@ -22,6 +22,10 @@ public Channels(String baseUrl, UnirestWrapper unirest) { this.unirest = unirest; } + public void add(String eventKey, String channelKey, String name, String color, Integer index, Set objects) { + add(eventKey, channelKey, name, color, index, objects, null); + } + public void add(String eventKey, String channelKey, String name, String color, Integer index, Set objects, Map areaPlaces) { this.add(eventKey, List.of(new ChannelCreationParams(channelKey, name, color, index, objects, areaPlaces))); } @@ -41,6 +45,10 @@ public void remove(String eventKey, String channelKey) { } public void update(String eventKey, String channelKey, String name, String color, Set objects) { + update(eventKey, channelKey, name, color, objects, null); + } + + public void update(String eventKey, String channelKey, String name, String color, Set objects, Map areaPlaces) { unirest.stringResponse(UnirestWrapper.post(baseUrl + "/events/{eventKey}/channels/{channelKey}") .routeParam("eventKey", eventKey) .routeParam("channelKey", channelKey) @@ -48,10 +56,15 @@ public void update(String eventKey, String channelKey, String name, String color .withPropertyIfNotNull("name", name) .withPropertyIfNotNull("color", color) .withPropertyIfNotNull("objects", objects) + .withPropertyIfNotNull("areaPlaces", areaPlaces) .buildAsString()) ); } + public void addObjects(String eventKey, String channelKey, Set objects) { + addObjects(eventKey, channelKey, objects, null); + } + public void addObjects(String eventKey, String channelKey, Set objects, Map areaPlaces) { unirest.stringResponse(UnirestWrapper.post(baseUrl + "/events/{eventKey}/channels/{channelKey}/objects") .routeParam("eventKey", eventKey) @@ -63,6 +76,10 @@ public void addObjects(String eventKey, String channelKey, Set objects, ); } + public void removeObjects(String eventKey, String channelKey, Set objects) { + removeObjects(eventKey, channelKey, objects, null); + } + public void removeObjects(String eventKey, String channelKey, Set objects, Map areaPlaces) { unirest.stringResponse(UnirestWrapper.delete(baseUrl + "/events/{eventKey}/channels/{channelKey}/objects") .routeParam("eventKey", eventKey) diff --git a/src/test/java/seatsio/events/ChangeBestAvailableObjectStatusTest.java b/src/test/java/seatsio/events/ChangeBestAvailableObjectStatusTest.java index 134dcbe1..e949fa1a 100644 --- a/src/test/java/seatsio/events/ChangeBestAvailableObjectStatusTest.java +++ b/src/test/java/seatsio/events/ChangeBestAvailableObjectStatusTest.java @@ -181,7 +181,7 @@ public void keepExtraDataNotPassIn() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("B-6"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("B-6")) ))); BestAvailableResult bestAvailableResult = client.events.changeObjectStatus(event.key(), new BestAvailableParams(1), "foo", null, null, null, null, Set.of("channelKey1")); @@ -193,7 +193,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-5"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-5")) ))); BestAvailableResult bestAvailableResult = client.events.changeObjectStatus(event.key(), new BestAvailableParams(1), "foo", null, null, null, true, null); diff --git a/src/test/java/seatsio/events/CreateEventTest.java b/src/test/java/seatsio/events/CreateEventTest.java index 5b0db402..d9e00a82 100644 --- a/src/test/java/seatsio/events/CreateEventTest.java +++ b/src/test/java/seatsio/events/CreateEventTest.java @@ -103,15 +103,15 @@ public void categoriesCanBePassedIn() { public void channelsCanBePassedIn() { String chartKey = createTestChart(); List channels = List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of("GA1", 3)), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) ); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(channels)); assertThat(event.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of("GA1", 3)), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) ); } diff --git a/src/test/java/seatsio/events/CreateEventsTest.java b/src/test/java/seatsio/events/CreateEventsTest.java index 4b217f94..f0d70cb2 100644 --- a/src/test/java/seatsio/events/CreateEventsTest.java +++ b/src/test/java/seatsio/events/CreateEventsTest.java @@ -118,8 +118,8 @@ public void dateCanBePassedIn() { public void channelsCanBePassedIn() { String chartKey = createTestChart(); List channels = List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of("GA1", 3)), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) ); List events = client.events.create(chartKey, List.of( @@ -129,8 +129,8 @@ public void channelsCanBePassedIn() { assertThat(events) .extracting("channels") .containsExactly(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of("GA1", 3)), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) )); } diff --git a/src/test/java/seatsio/events/channels/AddChannelTest.java b/src/test/java/seatsio/events/channels/AddChannelTest.java index 649d74fa..5962371b 100644 --- a/src/test/java/seatsio/events/channels/AddChannelTest.java +++ b/src/test/java/seatsio/events/channels/AddChannelTest.java @@ -19,13 +19,13 @@ public void addChannel() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); - client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3"), null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); + client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3")); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3")) ); } @@ -44,8 +44,8 @@ public void addChannels() { Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3")) ); } @@ -54,24 +54,50 @@ public void indexIsOptional() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", null, Set.of("A-1", "A-2"), null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", null, Set.of("A-1", "A-2")); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", null, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", null, Set.of("A-1", "A-2")) ); } @Test - public void objectsAreOptional() { + public void objectsAndAreaPlacesAreOptional() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, null, null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of()) + ); + } + + @Test + public void areaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, null, Map.of("GA1", 3)); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of("GA1", 3)) + ); + } + + @Test + public void objectsAndAreaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of("GA1", 3)); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of("GA1", 3)) ); } diff --git a/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java b/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java index 5e090edf..7870ed4e 100644 --- a/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java +++ b/src/test/java/seatsio/events/channels/AddObjectsToChannelTest.java @@ -16,19 +16,18 @@ public class AddObjectsToChannelTest extends SeatsioClientTest { public void addObjects() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); - client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3", "A-4"), null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); + client.events.channels.add(event.key(), "channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-3", "A-4")); - client.events.channels.addObjects(event.key(), "channelKey1", Set.of("A-3", "A-4"), null); + client.events.channels.addObjects(event.key(), "channelKey1", Set.of("A-3", "A-4")); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of(), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4")), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of()) ); } - @Test public void addAreaPlaces() { String chartKey = createTestChart(); diff --git a/src/test/java/seatsio/events/channels/RemoveChannelTest.java b/src/test/java/seatsio/events/channels/RemoveChannelTest.java index 45598f01..58e3f902 100644 --- a/src/test/java/seatsio/events/channels/RemoveChannelTest.java +++ b/src/test/java/seatsio/events/channels/RemoveChannelTest.java @@ -27,7 +27,7 @@ public void removeChannel() { Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, new HashSet<>(), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, new HashSet<>()) ); } diff --git a/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java b/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java index 031625bc..83565773 100644 --- a/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java +++ b/src/test/java/seatsio/events/channels/RemoveObjectsFromChannelTest.java @@ -16,17 +16,16 @@ public class RemoveObjectsFromChannelTest extends SeatsioClientTest { public void removeObjects() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4"), null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2", "A-3", "A-4")); - client.events.channels.removeObjects(event.key(), "channelKey1", Set.of("A-3", "A-4"), null); + client.events.channels.removeObjects(event.key(), "channelKey1", Set.of("A-3", "A-4")); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")) ); } - @Test public void removeAreaPlaces() { String chartKey = createTestChart(); diff --git a/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java b/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java index e0afcbec..e75dfa9d 100644 --- a/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java +++ b/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java @@ -21,14 +21,29 @@ public void replaceChannels() { Event event = client.events.create(chartKey); client.events.channels.replace(event.key(), List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) )); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) + ); + } + + @Test + public void replaceChannelsWithAreaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + + client.events.channels.replace(event.key(), List.of( + new Channel("channelKey1", "channel 1", "#FFFF99", 1, null, Map.of("GA1", 3)) + )); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of(), Map.of("GA1", 3)) ); } @@ -44,8 +59,8 @@ public void replaceChannelsWithOnlyRequiredFields() { Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", null, new HashSet<>(), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", null, new HashSet<>(), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", null, new HashSet<>()), + new Channel("channelKey2", "channel 2", "#FFFF99", null, new HashSet<>()) ); } diff --git a/src/test/java/seatsio/events/channels/UpdateChannelTest.java b/src/test/java/seatsio/events/channels/UpdateChannelTest.java index 5342fda1..ee8aa6a6 100644 --- a/src/test/java/seatsio/events/channels/UpdateChannelTest.java +++ b/src/test/java/seatsio/events/channels/UpdateChannelTest.java @@ -16,13 +16,13 @@ public class UpdateChannelTest extends SeatsioClientTest { public void updateName() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); client.events.channels.update(event.key(), "channelKey1", "channel 2", null, null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 2", "#FFFF98", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 2", "#FFFF98", 1, Set.of("A-1", "A-2")) ); } @@ -30,13 +30,13 @@ public void updateName() { public void updateColor() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); client.events.channels.update(event.key(), "channelKey1", null, "#FFFF99", null); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ); } @@ -44,13 +44,27 @@ public void updateColor() { public void updateObjects() { String chartKey = createTestChart(); Event event = client.events.create(chartKey); - client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2"), null); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-1", "A-2")); client.events.channels.update(event.key(), "channelKey1", null, null, Set.of("A-3")); Event retrievedEvent = client.events.retrieve(event.key()); assertThat(retrievedEvent.channels()).containsExactly( - new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-3"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of("A-3")) + ); + } + + @Test + public void updateAreaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + client.events.channels.add(event.key(), "channelKey1", "channel 1", "#FFFF98", 1, null); + + client.events.channels.update(event.key(), "channelKey1", null, null, null, Map.of("GA1", 3)); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of("GA1", 3)) ); } } diff --git a/src/test/java/seatsio/reports/events/EventReportsSummaryTest.java b/src/test/java/seatsio/reports/events/EventReportsSummaryTest.java index 2ad5929f..b818eb06 100644 --- a/src/test/java/seatsio/reports/events/EventReportsSummaryTest.java +++ b/src/test/java/seatsio/reports/events/EventReportsSummaryTest.java @@ -361,7 +361,7 @@ public void summaryByAvailabilityReason() { public void summaryByChannel() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); Map report = client.eventReports.summaryByChannel(event.key()); diff --git a/src/test/java/seatsio/reports/events/EventReportsTest.java b/src/test/java/seatsio/reports/events/EventReportsTest.java index 01689186..eaccc96e 100644 --- a/src/test/java/seatsio/reports/events/EventReportsTest.java +++ b/src/test/java/seatsio/reports/events/EventReportsTest.java @@ -22,7 +22,7 @@ public class EventReportsTest extends SeatsioClientTest { public void reportItemProperties() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()) + new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1")) ))); Map extraData = Map.of("foo", "bar"); client.events.book(event.key(), asList(new ObjectProperties("A-1", "ticketType1", extraData)), null, "order1", null, true, null); @@ -400,7 +400,7 @@ public void bySpecificAvailabilityReason() { public void byChannel() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); Map> report = client.eventReports.byChannel(event.key()); @@ -413,7 +413,7 @@ public void byChannel() { public void bySpecificChannel() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channel1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); List report = client.eventReports.byChannel(event.key(), "channel1"); From ec10c347ed3d92aab8fbcc6ca6d21fb5f832b2f1 Mon Sep 17 00:00:00 2001 From: mroloux Date: Tue, 19 May 2026 13:23:14 +0200 Subject: [PATCH 4/9] Added withAreaPlaces to ChannelCreationParams --- .../seatsio/events/ChannelCreationParams.java | 5 +++++ .../events/channels/AddChannelTest.java | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/main/java/seatsio/events/ChannelCreationParams.java b/src/main/java/seatsio/events/ChannelCreationParams.java index 07e27833..79107336 100644 --- a/src/main/java/seatsio/events/ChannelCreationParams.java +++ b/src/main/java/seatsio/events/ChannelCreationParams.java @@ -54,6 +54,11 @@ public Builder withObjects(Set objectLabels) { return this; } + public Builder withAreaPlaces(Map areaPlaces) { + this.areaPlaces = areaPlaces; + return this; + } + public ChannelCreationParams build() { return new ChannelCreationParams( this.key, diff --git a/src/test/java/seatsio/events/channels/AddChannelTest.java b/src/test/java/seatsio/events/channels/AddChannelTest.java index 5962371b..85022341 100644 --- a/src/test/java/seatsio/events/channels/AddChannelTest.java +++ b/src/test/java/seatsio/events/channels/AddChannelTest.java @@ -49,6 +49,24 @@ public void addChannels() { ); } + @Test + public void addChannelsWithAreaPlaces() { + String chartKey = createTestChart(); + Event event = client.events.create(chartKey); + + client.events.channels.add( + event.key(), + List.of( + new ChannelCreationParams.Builder().withKey("channelKey1").withName("channel 1").withColor("#FFFF98").withIndex(1).withAreaPlaces(Map.of("GA1", 3)).build() + ) + ); + + Event retrievedEvent = client.events.retrieve(event.key()); + assertThat(retrievedEvent.channels()).containsExactly( + new Channel("channelKey1", "channel 1", "#FFFF98", 1, Set.of(), Map.of("GA1", 3)) + ); + } + @Test public void indexIsOptional() { String chartKey = createTestChart(); From 33fb73b276a2f05ae892b30ffedf0a83545bad0c Mon Sep 17 00:00:00 2001 From: mroloux Date: Tue, 19 May 2026 13:26:13 +0200 Subject: [PATCH 5/9] Don't change test code that doesn't need changing --- src/test/java/seatsio/events/BookObjectsTest.java | 4 ++-- .../java/seatsio/events/ChangeObjectStatusInBatchTest.java | 4 ++-- src/test/java/seatsio/events/ChangeObjectStatusTest.java | 4 ++-- src/test/java/seatsio/events/HoldObjectsTest.java | 4 ++-- src/test/java/seatsio/events/ReleaseObjectsTest.java | 4 ++-- src/test/java/seatsio/seasons/CreateSeasonTest.java | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/test/java/seatsio/events/BookObjectsTest.java b/src/test/java/seatsio/events/BookObjectsTest.java index 83a2243c..84f97bb8 100644 --- a/src/test/java/seatsio/events/BookObjectsTest.java +++ b/src/test/java/seatsio/events/BookObjectsTest.java @@ -105,7 +105,7 @@ public void keepExtraData() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); client.events.book(event.key(), List.of("A-1"), null, null, true, null, Set.of("channelKey1")); @@ -117,7 +117,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); client.events.book(event.key(), List.of("A-1"), null, null, null, true, null); diff --git a/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java b/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java index ea9ba1d8..120bb193 100644 --- a/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java +++ b/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java @@ -40,7 +40,7 @@ public void test() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")) ))); List result = client.events.changeObjectStatus(List.of( @@ -54,7 +54,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")) ))); List result = client.events.changeObjectStatus(List.of( diff --git a/src/test/java/seatsio/events/ChangeObjectStatusTest.java b/src/test/java/seatsio/events/ChangeObjectStatusTest.java index f8b5a494..1ffc613c 100644 --- a/src/test/java/seatsio/events/ChangeObjectStatusTest.java +++ b/src/test/java/seatsio/events/ChangeObjectStatusTest.java @@ -202,7 +202,7 @@ public void extraData() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); client.events.changeObjectStatus(event.key(), List.of("A-1"), "someStatus", null, null, true, null, Set.of("channelKey1")); @@ -214,7 +214,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); client.events.changeObjectStatus(event.key(), List.of("A-1"), "someStatus", null, null, null, true, null); diff --git a/src/test/java/seatsio/events/HoldObjectsTest.java b/src/test/java/seatsio/events/HoldObjectsTest.java index c93e1ec4..826844a1 100644 --- a/src/test/java/seatsio/events/HoldObjectsTest.java +++ b/src/test/java/seatsio/events/HoldObjectsTest.java @@ -69,7 +69,7 @@ public void labels() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); HoldToken holdToken = client.holdTokens.create(); @@ -82,7 +82,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); HoldToken holdToken = client.holdTokens.create(); diff --git a/src/test/java/seatsio/events/ReleaseObjectsTest.java b/src/test/java/seatsio/events/ReleaseObjectsTest.java index e97c3dff..0e05aa51 100644 --- a/src/test/java/seatsio/events/ReleaseObjectsTest.java +++ b/src/test/java/seatsio/events/ReleaseObjectsTest.java @@ -70,7 +70,7 @@ public void keepExtraData() { public void channelKeys() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); client.events.book(event.key(), List.of("A-1"), null, null, true, null, Set.of("channelKey1")); @@ -84,7 +84,7 @@ public void channelKeys() { public void ignoreChannels() { String chartKey = createTestChart(); Event event = client.events.create(chartKey, new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1", "A-2")) ))); client.events.book(event.key(), List.of("A-1"), null, null, true, true, null); diff --git a/src/test/java/seatsio/seasons/CreateSeasonTest.java b/src/test/java/seatsio/seasons/CreateSeasonTest.java index 4e72ae18..2ae94ebc 100644 --- a/src/test/java/seatsio/seasons/CreateSeasonTest.java +++ b/src/test/java/seatsio/seasons/CreateSeasonTest.java @@ -104,8 +104,8 @@ public void tableBookingConfigInheritCanBePassedIn() { public void channelsCanBePassedIn() { String chartKey = createTestChart(); List channels = List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1"), Map.of()), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2"), Map.of()) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, Set.of("A-1")), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, Set.of("A-2")) ); Season season = client.seasons.create(chartKey, new CreateSeasonParams().channels(channels)); From aefc857316dfda99a29e5e3e7f12305fabf869ba Mon Sep 17 00:00:00 2001 From: mroloux Date: Tue, 19 May 2026 13:27:58 +0200 Subject: [PATCH 6/9] Don't change test code that doesn't need changing --- src/test/java/seatsio/events/CreateEventTest.java | 1 - src/test/java/seatsio/events/channels/RemoveChannelTest.java | 4 ++-- .../java/seatsio/events/channels/ReplaceChannelsTest.java | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/test/java/seatsio/events/CreateEventTest.java b/src/test/java/seatsio/events/CreateEventTest.java index d9e00a82..3598ce55 100644 --- a/src/test/java/seatsio/events/CreateEventTest.java +++ b/src/test/java/seatsio/events/CreateEventTest.java @@ -1,7 +1,6 @@ package seatsio.events; import org.junit.jupiter.api.Test; -import seatsio.SeatsioClient; import seatsio.SeatsioClientTest; import seatsio.charts.Category; import seatsio.charts.CategoryKey; diff --git a/src/test/java/seatsio/events/channels/RemoveChannelTest.java b/src/test/java/seatsio/events/channels/RemoveChannelTest.java index 58e3f902..5046fa8f 100644 --- a/src/test/java/seatsio/events/channels/RemoveChannelTest.java +++ b/src/test/java/seatsio/events/channels/RemoveChannelTest.java @@ -19,8 +19,8 @@ public class RemoveChannelTest extends SeatsioClientTest { public void removeChannel() { Chart chart = client.charts.create(); Event event = client.events.create(chart.key(), new CreateEventParams().withChannels(List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", 1, null, null), - new Channel("channelKey2", "channel 2", "#FFFF99", 2, null, null) + new Channel("channelKey1", "channel 1", "#FFFF99", 1, null), + new Channel("channelKey2", "channel 2", "#FFFF99", 2, null) ))); client.events.channels.remove(event.key(), "channelKey2"); diff --git a/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java b/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java index e75dfa9d..13cb8c6e 100644 --- a/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java +++ b/src/test/java/seatsio/events/channels/ReplaceChannelsTest.java @@ -53,8 +53,8 @@ public void replaceChannelsWithOnlyRequiredFields() { Event event = client.events.create(chart.key()); client.events.channels.replace(event.key(), List.of( - new Channel("channelKey1", "channel 1", "#FFFF99", null, null, null), - new Channel("channelKey2", "channel 2", "#FFFF99", null, null, null) + new Channel("channelKey1", "channel 1", "#FFFF99", null, null), + new Channel("channelKey2", "channel 2", "#FFFF99", null, null) )); Event retrievedEvent = client.events.retrieve(event.key()); From 2226bdf307e8a785bf7db12dc4fb0f69bb7a594a Mon Sep 17 00:00:00 2001 From: mroloux Date: Tue, 19 May 2026 13:32:31 +0200 Subject: [PATCH 7/9] Add constructor for backwards compatibility --- src/main/java/seatsio/events/ChannelCreationParams.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/seatsio/events/ChannelCreationParams.java b/src/main/java/seatsio/events/ChannelCreationParams.java index 79107336..795f710c 100644 --- a/src/main/java/seatsio/events/ChannelCreationParams.java +++ b/src/main/java/seatsio/events/ChannelCreationParams.java @@ -9,6 +9,10 @@ public record ChannelCreationParams(String key, String name, String color, Integer index, Set objects, Map areaPlaces) { + public ChannelCreationParams(String key, String name, String color, Integer index, Set objects) { + this(key, name, color, index, objects, null); + } + public JsonObject toJson() { return aJsonObject() .withProperty("key", key) From 7bb76364b34898a46654def122825ff539bab820 Mon Sep 17 00:00:00 2001 From: mroloux Date: Wed, 20 May 2026 14:11:36 +0200 Subject: [PATCH 8/9] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/test/java/seatsio/events/channels/RemoveChannelTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/seatsio/events/channels/RemoveChannelTest.java b/src/test/java/seatsio/events/channels/RemoveChannelTest.java index 5046fa8f..15b6564b 100644 --- a/src/test/java/seatsio/events/channels/RemoveChannelTest.java +++ b/src/test/java/seatsio/events/channels/RemoveChannelTest.java @@ -9,7 +9,6 @@ import java.util.HashSet; import java.util.List; -import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; From 8c37f8f0629ebd863da45f2e95af02f7aa34ef51 Mon Sep 17 00:00:00 2001 From: mroloux Date: Wed, 20 May 2026 14:11:44 +0200 Subject: [PATCH 9/9] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java b/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java index 120bb193..e2dba1cc 100644 --- a/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java +++ b/src/test/java/seatsio/events/ChangeObjectStatusInBatchTest.java @@ -6,7 +6,6 @@ import seatsio.seasons.CreateSeasonParams; import java.util.List; -import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat;