Skip to content

Commit da37b80

Browse files
committed
Expose channel ID
1 parent 5d781c6 commit da37b80

10 files changed

Lines changed: 143 additions & 19 deletions

events/channel.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
package events
22

3+
import "fmt"
4+
35
type Channel struct {
6+
ID string `json:"id"`
47
Key string `json:"key"`
58
Name string `json:"name"`
69
Color string `json:"color"`
710
Index int `json:"index"`
811
Objects []string `json:"objects,omitempty"`
912
AreaPlaces map[string]int `json:"areaPlaces,omitempty"`
1013
}
14+
15+
func (c Channel) AreaPartitionLabel(areaLabel string) string {
16+
return fmt.Sprintf("%s##%s", areaLabel, c.ID)
17+
}

events_test/add_objects_to_channel_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,14 @@ func TestObjectsAreAddedToChannel(t *testing.T) {
1515
_ = client.Channels.AddObjects(test_util.RequestContext(), event.Key, "foo", []string{"A-3", "A-4"})
1616

1717
retrievedEvent, _ := client.Events.Retrieve(test_util.RequestContext(), event.Key)
18-
require.Equal(t, []events.Channel{{Key: "foo", Name: "bar", Color: "#ED303D", Index: 1, Objects: []string{"A-1", "A-2", "A-3", "A-4"}, AreaPlaces: map[string]int{"GA1": 5}}}, retrievedEvent.Channels)
18+
require.Len(t, retrievedEvent.Channels, 1)
19+
ch := retrievedEvent.Channels[0]
20+
require.Equal(t, "foo", ch.Key)
21+
require.Equal(t, "bar", ch.Name)
22+
require.Equal(t, "#ED303D", ch.Color)
23+
require.Equal(t, 1, ch.Index)
24+
require.Equal(t, []string{"A-1", "A-2", "A-3", "A-4"}, ch.Objects)
25+
require.Equal(t, map[string]int{"GA1": 5}, ch.AreaPlaces)
1926
}
2027

2128
func TestAreaPlacesAreAddedToChannel(t *testing.T) {

events_test/create_channel_test.go

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@ func TestCreateChannel(t *testing.T) {
2323
require.NoError(t, err)
2424

2525
retrievedEvent, err := client.Events.Retrieve(test_util.RequestContext(), event.Key)
26-
require.Equal(t, []events.Channel{{Key: "foo", Name: "bar", Color: "#ED303D", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{"GA1": 5}}}, retrievedEvent.Channels)
26+
require.NoError(t, err)
27+
require.Len(t, retrievedEvent.Channels, 1)
28+
ch := retrievedEvent.Channels[0]
29+
require.Equal(t, "foo", ch.Key)
30+
require.Equal(t, "bar", ch.Name)
31+
require.Equal(t, "#ED303D", ch.Color)
32+
require.Equal(t, 1, ch.Index)
33+
require.Equal(t, []string{"A-1", "A-2"}, ch.Objects)
34+
require.Equal(t, map[string]int{"GA1": 5}, ch.AreaPlaces)
2735
}
2836

2937
func TestCreateChannels(t *testing.T) {
@@ -43,10 +51,21 @@ func TestCreateChannels(t *testing.T) {
4351
require.NoError(t, err)
4452

4553
retrievedEvent, err := client.Events.Retrieve(test_util.RequestContext(), event.Key)
46-
require.Equal(t, []events.Channel{
47-
{Key: "foo", Name: "bar", Color: "#ED303D", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{"GA1": 5}},
48-
{Key: "hurdy", Name: "gurdy", Color: "#DFDFDF", Index: 2, Objects: []string{"A-3", "A-4"}, AreaPlaces: map[string]int{}},
49-
}, retrievedEvent.Channels)
54+
require.NoError(t, err)
55+
require.Len(t, retrievedEvent.Channels, 2)
56+
ch1 := retrievedEvent.Channels[0]
57+
require.Equal(t, "foo", ch1.Key)
58+
require.Equal(t, "bar", ch1.Name)
59+
require.Equal(t, "#ED303D", ch1.Color)
60+
require.Equal(t, 1, ch1.Index)
61+
require.Equal(t, []string{"A-1", "A-2"}, ch1.Objects)
62+
require.Equal(t, map[string]int{"GA1": 5}, ch1.AreaPlaces)
63+
ch2 := retrievedEvent.Channels[1]
64+
require.Equal(t, "hurdy", ch2.Key)
65+
require.Equal(t, "gurdy", ch2.Name)
66+
require.Equal(t, "#DFDFDF", ch2.Color)
67+
require.Equal(t, 2, ch2.Index)
68+
require.Equal(t, []string{"A-3", "A-4"}, ch2.Objects)
5069
}
5170

5271
func TestIndexIsOptional(t *testing.T) {
@@ -122,3 +141,30 @@ func TestCreateChannelWithAreaPlaces(t *testing.T) {
122141
require.NoError(t, err)
123142
require.Equal(t, map[string]int{"GA1": 5}, retrievedEvent.Channels[0].AreaPlaces)
124143
}
144+
145+
func TestChannelHasID(t *testing.T) {
146+
t.Parallel()
147+
company := test_util.CreateTestCompany(t)
148+
chartKey := test_util.CreateTestChart(t, company.Admin.SecretKey)
149+
client := seatsio.NewSeatsioClient(test_util.BaseUrl, company.Admin.SecretKey)
150+
event, _ := client.Events.Create(test_util.RequestContext(), &events.CreateEventParams{ChartKey: chartKey, EventParams: &events.EventParams{
151+
EventKey: "anEvent",
152+
}})
153+
154+
err := client.Channels.Create(test_util.RequestContext(), event.Key, &events.CreateChannelParams{
155+
Key: "foo",
156+
Name: "bar",
157+
Color: "#ED303D",
158+
Index: 1,
159+
})
160+
require.NoError(t, err)
161+
162+
retrievedEvent, err := client.Events.Retrieve(test_util.RequestContext(), event.Key)
163+
require.NoError(t, err)
164+
require.NotEmpty(t, retrievedEvent.Channels[0].ID)
165+
}
166+
167+
func TestAreaPartitionLabel(t *testing.T) {
168+
ch := events.Channel{ID: "abc123"}
169+
require.Equal(t, "myArea##abc123", ch.AreaPartitionLabel("myArea"))
170+
}

events_test/create_event_test.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,15 @@ func TestCreateEventWithChannels(t *testing.T) {
164164
{Key: "aaa", Name: "bbb", Color: "#101010", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{"GA1": 5}},
165165
{Key: "ccc", Name: "ddd", Color: "#F2F2F2", Index: 2, Objects: []string{}, AreaPlaces: map[string]int{}},
166166
}
167-
require.Equal(t, expectedChannels, event.Channels)
167+
require.Len(t, event.Channels, 2)
168+
for i, expected := range expectedChannels {
169+
require.Equal(t, expected.Key, event.Channels[i].Key)
170+
require.Equal(t, expected.Name, event.Channels[i].Name)
171+
require.Equal(t, expected.Color, event.Channels[i].Color)
172+
require.Equal(t, expected.Index, event.Channels[i].Index)
173+
require.Equal(t, expected.Objects, event.Channels[i].Objects)
174+
require.Equal(t, expected.AreaPlaces, event.Channels[i].AreaPlaces)
175+
}
168176
}
169177

170178
func TestCreateEventWithForSaleConfig(t *testing.T) {

events_test/create_events_test.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,17 @@ func TestCreateMultipleEventsWithChannels(t *testing.T) {
153153
{Key: "aaa", Name: "bbb", Color: "#101010", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{"GA1": 5}},
154154
{Key: "ccc", Name: "ddd", Color: "#F2F2F2", Index: 2, Objects: []string{}, AreaPlaces: map[string]int{}},
155155
}
156-
require.Equal(t, expectedChannels, result.Events[0].Channels)
157-
require.Equal(t, expectedChannels, result.Events[1].Channels)
156+
for _, ev := range result.Events {
157+
require.Len(t, ev.Channels, 2)
158+
for i, expected := range expectedChannels {
159+
require.Equal(t, expected.Key, ev.Channels[i].Key)
160+
require.Equal(t, expected.Name, ev.Channels[i].Name)
161+
require.Equal(t, expected.Color, ev.Channels[i].Color)
162+
require.Equal(t, expected.Index, ev.Channels[i].Index)
163+
require.Equal(t, expected.Objects, ev.Channels[i].Objects)
164+
require.Equal(t, expected.AreaPlaces, ev.Channels[i].AreaPlaces)
165+
}
166+
}
158167
}
159168

160169
func TestCreateMultipleEventsWithDuplicateKeys(t *testing.T) {

events_test/delete_channel_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,14 @@ func TestDeleteChannel(t *testing.T) {
1313

1414
event, client := CreateChannel(t, &events.CreateChannelParams{Key: "foo", Name: "bar", Color: "#ED303D", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{"GA1": 5}})
1515
retrievedEvent, _ := client.Events.Retrieve(test_util.RequestContext(), event.Key)
16-
require.Equal(t, []events.Channel{{Key: "foo", Name: "bar", Color: "#ED303D", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{"GA1": 5}}}, retrievedEvent.Channels)
16+
require.Len(t, retrievedEvent.Channels, 1)
17+
ch := retrievedEvent.Channels[0]
18+
require.Equal(t, "foo", ch.Key)
19+
require.Equal(t, "bar", ch.Name)
20+
require.Equal(t, "#ED303D", ch.Color)
21+
require.Equal(t, 1, ch.Index)
22+
require.Equal(t, []string{"A-1", "A-2"}, ch.Objects)
23+
require.Equal(t, map[string]int{"GA1": 5}, ch.AreaPlaces)
1724

1825
deleteErr := client.Channels.Delete(test_util.RequestContext(), event.Key, "foo")
1926
require.NoError(t, deleteErr)

events_test/remove_objects_from_channel_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,14 @@ func TestObjectsAreRemovedFromChannel(t *testing.T) {
1515
_ = client.Channels.RemoveObjects(test_util.RequestContext(), event.Key, "foo", []string{"A-1"})
1616

1717
retrievedEvent, _ := client.Events.Retrieve(test_util.RequestContext(), event.Key)
18-
require.Equal(t, []events.Channel{{Key: "foo", Name: "bar", Color: "#ED303D", Index: 1, Objects: []string{"A-2"}, AreaPlaces: map[string]int{"GA1": 5}}}, retrievedEvent.Channels)
18+
require.Len(t, retrievedEvent.Channels, 1)
19+
ch := retrievedEvent.Channels[0]
20+
require.Equal(t, "foo", ch.Key)
21+
require.Equal(t, "bar", ch.Name)
22+
require.Equal(t, "#ED303D", ch.Color)
23+
require.Equal(t, 1, ch.Index)
24+
require.Equal(t, []string{"A-2"}, ch.Objects)
25+
require.Equal(t, map[string]int{"GA1": 5}, ch.AreaPlaces)
1926
}
2027

2128
func TestAreaPlacesAreRemovedFromChannel(t *testing.T) {

events_test/replace_channels_test.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,18 @@ func TestReplaceChannel(t *testing.T) {
3232
postReplacementEvent, err := client.Events.Retrieve(test_util.RequestContext(), event.Key)
3333
require.NoError(t, err)
3434

35-
require.Equal(t, []events.Channel{
36-
{Key: "aaa", Name: "bbb", Color: "#101010", Index: 1, Objects: []string{"A-5", "A-6"}, AreaPlaces: map[string]int{"GA1": 7}},
37-
{Key: "ccc", Name: "ddd", Color: "#F2F2F2", Index: 2, Objects: []string{"A-7", "A-8"}, AreaPlaces: map[string]int{}},
38-
}, postReplacementEvent.Channels)
35+
require.Len(t, postReplacementEvent.Channels, 2)
36+
ch1 := postReplacementEvent.Channels[0]
37+
require.Equal(t, "aaa", ch1.Key)
38+
require.Equal(t, "bbb", ch1.Name)
39+
require.Equal(t, "#101010", ch1.Color)
40+
require.Equal(t, 1, ch1.Index)
41+
require.Equal(t, []string{"A-5", "A-6"}, ch1.Objects)
42+
require.Equal(t, map[string]int{"GA1": 7}, ch1.AreaPlaces)
43+
ch2 := postReplacementEvent.Channels[1]
44+
require.Equal(t, "ccc", ch2.Key)
45+
require.Equal(t, "ddd", ch2.Name)
46+
require.Equal(t, "#F2F2F2", ch2.Color)
47+
require.Equal(t, 2, ch2.Index)
48+
require.Equal(t, []string{"A-7", "A-8"}, ch2.Objects)
3949
}

events_test/update_channel_test.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ func TestUpdateName(t *testing.T) {
1717
require.NoError(t, err)
1818

1919
postUpdateEvent, _ := client.Events.Retrieve(test_util.RequestContext(), event.Key)
20-
require.Equal(t, []events.Channel{{Key: "channelKey1", Name: "hurdy", Color: "#ED303D", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{"GA1": 5}}}, postUpdateEvent.Channels)
20+
require.Len(t, postUpdateEvent.Channels, 1)
21+
require.Equal(t, "channelKey1", postUpdateEvent.Channels[0].Key)
22+
require.Equal(t, "hurdy", postUpdateEvent.Channels[0].Name)
23+
require.Equal(t, "#ED303D", postUpdateEvent.Channels[0].Color)
24+
require.Equal(t, []string{"A-1", "A-2"}, postUpdateEvent.Channels[0].Objects)
25+
require.Equal(t, map[string]int{"GA1": 5}, postUpdateEvent.Channels[0].AreaPlaces)
2126
}
2227

2328
func TestUpdateColor(t *testing.T) {
@@ -29,7 +34,12 @@ func TestUpdateColor(t *testing.T) {
2934
require.NoError(t, err)
3035

3136
postUpdateEvent, _ := client.Events.Retrieve(test_util.RequestContext(), event.Key)
32-
require.Equal(t, []events.Channel{{Key: "channelKey1", Name: "bar", Color: "#1E1E1E", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{"GA1": 5}}}, postUpdateEvent.Channels)
37+
require.Len(t, postUpdateEvent.Channels, 1)
38+
require.Equal(t, "channelKey1", postUpdateEvent.Channels[0].Key)
39+
require.Equal(t, "bar", postUpdateEvent.Channels[0].Name)
40+
require.Equal(t, "#1E1E1E", postUpdateEvent.Channels[0].Color)
41+
require.Equal(t, []string{"A-1", "A-2"}, postUpdateEvent.Channels[0].Objects)
42+
require.Equal(t, map[string]int{"GA1": 5}, postUpdateEvent.Channels[0].AreaPlaces)
3343
}
3444

3545
func TestUpdateObjects(t *testing.T) {
@@ -41,7 +51,12 @@ func TestUpdateObjects(t *testing.T) {
4151
require.NoError(t, err)
4252

4353
postUpdateEvent, _ := client.Events.Retrieve(test_util.RequestContext(), event.Key)
44-
require.Equal(t, []events.Channel{{Key: "channelKey1", Name: "bar", Color: "#ED303D", Index: 1, Objects: []string{"A-3", "A-4"}, AreaPlaces: map[string]int{"GA1": 5}}}, postUpdateEvent.Channels)
54+
require.Len(t, postUpdateEvent.Channels, 1)
55+
require.Equal(t, "channelKey1", postUpdateEvent.Channels[0].Key)
56+
require.Equal(t, "bar", postUpdateEvent.Channels[0].Name)
57+
require.Equal(t, "#ED303D", postUpdateEvent.Channels[0].Color)
58+
require.Equal(t, []string{"A-3", "A-4"}, postUpdateEvent.Channels[0].Objects)
59+
require.Equal(t, map[string]int{"GA1": 5}, postUpdateEvent.Channels[0].AreaPlaces)
4560
}
4661

4762
func TestUpdateAreaPlaces(t *testing.T) {

seasons_test/create_season_test.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,15 @@ func TestChannelsCanBePassedIn(t *testing.T) {
9898
{Key: "aaa", Name: "bbb", Color: "#101010", Index: 1, Objects: []string{"A-1", "A-2"}, AreaPlaces: map[string]int{}},
9999
{Key: "ccc", Name: "ddd", Color: "#F2F2F2", Index: 2, Objects: []string{}, AreaPlaces: map[string]int{}},
100100
}
101-
require.Equal(t, expectedChannels, season.Channels)
101+
require.Len(t, season.Channels, 2)
102+
for i, expected := range expectedChannels {
103+
require.Equal(t, expected.Key, season.Channels[i].Key)
104+
require.Equal(t, expected.Name, season.Channels[i].Name)
105+
require.Equal(t, expected.Color, season.Channels[i].Color)
106+
require.Equal(t, expected.Index, season.Channels[i].Index)
107+
require.Equal(t, expected.Objects, season.Channels[i].Objects)
108+
require.Equal(t, expected.AreaPlaces, season.Channels[i].AreaPlaces)
109+
}
102110
}
103111

104112
func TestForSaleConfigCanBePassedIn(t *testing.T) {

0 commit comments

Comments
 (0)