@@ -63,22 +63,34 @@ func (c *SSEClient) Connect(environment string) error {
63
63
case dto .KeyFeature :
64
64
// maybe is better to send event on memory bus that we get new message
65
65
// and subscribe to that event
66
- go func (env , identifier string ) {
67
- ctx , cancel := context .WithTimeout (context .Background (), time .Second * 60 )
68
- response , err := c .api .GetFeatureConfigByIdentifierWithResponse (ctx , env , identifier )
69
- if err != nil {
70
- c .logger .Errorf ("error while pulling flag, err: %s" , err .Error ())
71
- cancel ()
72
- return
73
- }
74
- if response .JSON200 != nil {
75
- c .cache .Set (dto.Key {
66
+ switch cfMsg .Event {
67
+ case dto .SseDeleteEvent :
68
+ go func () {
69
+ c .cache .Remove (dto.Key {
76
70
Type : dto .KeyFeature ,
77
71
Name : cfMsg .Identifier ,
78
- }, * response .JSON200 .Convert ())
79
- }
80
- cancel ()
81
- }(environment , cfMsg .Identifier )
72
+ })
73
+ }()
74
+
75
+ case dto .SsePatchEvent , dto .SseCreateEvent :
76
+ fallthrough
77
+ default :
78
+ go func (env , identifier string ) {
79
+ ctx , cancel := context .WithTimeout (context .Background (), time .Second * 60 )
80
+ defer cancel ()
81
+ response , err := c .api .GetFeatureConfigByIdentifierWithResponse (ctx , env , identifier )
82
+ if err != nil {
83
+ c .logger .Errorf ("error while pulling flag, err: %s" , err .Error ())
84
+ return
85
+ }
86
+ if response .JSON200 != nil {
87
+ c .cache .Set (dto.Key {
88
+ Type : dto .KeyFeature ,
89
+ Name : cfMsg .Identifier ,
90
+ }, * response .JSON200 .Convert ())
91
+ }
92
+ }(environment , cfMsg .Identifier )
93
+ }
82
94
case dto .KeySegment :
83
95
// need open client spec change
84
96
}
0 commit comments