Skip to content

Commit fe7b950

Browse files
Add flag for initial load so that oldflag check doesn't occur on first load
1 parent dfce6d2 commit fe7b950

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

client/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ func (c *CfClient) retrieveFlags(ctx context.Context) error {
366366
}
367367

368368
for _, flag := range *flags.JSON200 {
369-
c.repository.SetFlag(flag)
369+
c.repository.SetFlag(flag, true)
370370
}
371371
c.config.Logger.Info("Retrieving flags finished")
372372
return nil
@@ -390,7 +390,7 @@ func (c *CfClient) retrieveSegments(ctx context.Context) error {
390390
}
391391

392392
for _, segment := range *segments.JSON200 {
393-
c.repository.SetSegment(segment)
393+
c.repository.SetSegment(segment, true)
394394
}
395395
c.config.Logger.Info("Retrieving segments finished")
396396
return nil

pkg/repository/repository.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ type Repository interface {
1313
GetFlag(identifier string) (rest.FeatureConfig, error)
1414
GetSegment(identifier string) (rest.Segment, error)
1515

16-
SetFlag(featureConfig rest.FeatureConfig)
17-
SetSegment(segment rest.Segment)
16+
SetFlag(featureConfig rest.FeatureConfig, initialLoad bool)
17+
SetSegment(segment rest.Segment, initialLoad bool)
1818

1919
DeleteFlag(identifier string)
2020
DeleteSegment(identifier string)
@@ -107,9 +107,11 @@ func (r FFRepository) GetSegment(identifier string) (rest.Segment, error) {
107107
}
108108

109109
// SetFlag places a flag in the repository with the new value
110-
func (r FFRepository) SetFlag(featureConfig rest.FeatureConfig) {
111-
if r.isFlagOutdated(featureConfig) {
112-
return
110+
func (r FFRepository) SetFlag(featureConfig rest.FeatureConfig, initialLoad bool) {
111+
if !initialLoad {
112+
if r.isFlagOutdated(featureConfig) {
113+
return
114+
}
113115
}
114116
flagKey := formatFlagKey(featureConfig.Feature)
115117
if r.storage != nil {
@@ -127,9 +129,11 @@ func (r FFRepository) SetFlag(featureConfig rest.FeatureConfig) {
127129
}
128130

129131
// SetSegment places a segment in the repository with the new value
130-
func (r FFRepository) SetSegment(segment rest.Segment) {
131-
if r.isSegmentOutdated(segment) {
132-
return
132+
func (r FFRepository) SetSegment(segment rest.Segment, initialLoad bool) {
133+
if !initialLoad {
134+
if r.isSegmentOutdated(segment) {
135+
return
136+
}
133137
}
134138
segmentKey := formatSegmentKey(segment.Identifier)
135139
if r.storage != nil {
@@ -202,9 +206,9 @@ func (r FFRepository) Close() {
202206
}
203207

204208
func formatFlagKey(identifier string) string {
205-
return "flags/" + identifier
209+
return "flag/" + identifier
206210
}
207211

208212
func formatSegmentKey(identifier string) string {
209-
return "segments/" + identifier
213+
return "target-segment/" + identifier
210214
}

stream/sse.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ func (c *SSEClient) handleEvent(event Event) {
134134
}
135135

136136
if response.JSON200 != nil {
137-
c.repository.SetFlag(*response.JSON200)
137+
c.repository.SetFlag(*response.JSON200, false)
138138
}
139139
}
140140

@@ -159,7 +159,7 @@ func (c *SSEClient) handleEvent(event Event) {
159159
return
160160
}
161161
if response.JSON200 != nil {
162-
c.repository.SetSegment(*response.JSON200)
162+
c.repository.SetSegment(*response.JSON200, false)
163163
}
164164
}
165165
updateWithTimeout()

0 commit comments

Comments
 (0)