Skip to content

Commit 85fd7e0

Browse files
author
Andrew Hayes
authored
Merge pull request #37 from drone/FFM-1290_segment_events
(FFM-1290) Updates cache when recieving segment updates
2 parents 073717e + 45861d8 commit 85fd7e0

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

stream/sse.go

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,12 @@ func (c *SSEClient) Connect(environment string) error {
6565
// and subscribe to that event
6666
switch cfMsg.Event {
6767
case dto.SseDeleteEvent:
68-
go func() {
68+
go func(identifier string) {
6969
c.cache.Remove(dto.Key{
7070
Type: dto.KeyFeature,
71-
Name: cfMsg.Identifier,
71+
Name: identifier,
7272
})
73-
}()
74-
73+
}(cfMsg.Identifier)
7574
case dto.SsePatchEvent, dto.SseCreateEvent:
7675
fallthrough
7776
default:
@@ -86,16 +85,42 @@ func (c *SSEClient) Connect(environment string) error {
8685
if response.JSON200 != nil {
8786
c.cache.Set(dto.Key{
8887
Type: dto.KeyFeature,
89-
Name: cfMsg.Identifier,
88+
Name: identifier,
9089
}, *response.JSON200.Convert())
9190
}
9291
}(environment, cfMsg.Identifier)
9392
}
9493
case dto.KeySegment:
9594
// need open client spec change
95+
switch cfMsg.Event {
96+
case dto.SseDeleteEvent:
97+
go func(identifier string) {
98+
c.cache.Remove(dto.Key{
99+
Type: dto.KeySegment,
100+
Name: identifier,
101+
})
102+
}(cfMsg.Identifier)
103+
case dto.SsePatchEvent, dto.SseCreateEvent:
104+
fallthrough
105+
default:
106+
go func(env, identifier string) {
107+
ctx, cancel := context.WithTimeout(context.Background(), time.Second*60)
108+
defer cancel()
109+
response, err := c.api.GetSegmentByIdentifierWithResponse(ctx, env, identifier)
110+
if err != nil {
111+
c.logger.Errorf("error while pulling segment, err: %s", err.Error())
112+
return
113+
}
114+
if response.JSON200 != nil {
115+
c.cache.Set(dto.Key{
116+
Type: dto.KeySegment,
117+
Name: identifier,
118+
}, response.JSON200.Convert())
119+
}
120+
}(environment, cfMsg.Identifier)
121+
}
96122
}
97123
}
98-
99124
})
100125
if err != nil {
101126
c.logger.Errorf("Error: %s", err.Error())

0 commit comments

Comments
 (0)