@@ -63,11 +63,7 @@ func (s syncHandler) SyncFlags(req *syncv1.SyncFlagsRequest, server syncv1grpc.F
6363 return fmt .Errorf ("error constructing metadata response" )
6464 }
6565
66- flagConfig := map [string ]interface {}{
67- "flags" : s .convertMap (payload .Flags ),
68- }
69-
70- flags , err := json .Marshal (flagConfig )
66+ flags , err := s .generateResponse (payload .Flags )
7167 if err != nil {
7268 s .log .Error (fmt .Sprintf ("error retrieving flags from store: %v" , err ))
7369 return status .Error (codes .DataLoss , "error marshalling flags" )
@@ -89,6 +85,15 @@ func (s syncHandler) SyncFlags(req *syncv1.SyncFlagsRequest, server syncv1grpc.F
8985 }
9086}
9187
88+ func (s syncHandler ) generateResponse (payload []model.Flag ) ([]byte , error ) {
89+ flagConfig := map [string ]interface {}{
90+ "flags" : s .convertMap (payload ),
91+ }
92+
93+ flags , err := json .Marshal (flagConfig )
94+ return flags , err
95+ }
96+
9297// getSelectorExpression extracts the selector expression from the request.
9398// It first checks the Flagd-Selector header (metadata), then falls back to the request body selector.
9499//
@@ -141,11 +146,7 @@ func (s syncHandler) FetchAllFlags(ctx context.Context, req *syncv1.FetchAllFlag
141146 return nil , status .Error (codes .Internal , "error retrieving flags from store" )
142147 }
143148
144- flagConfig := map [string ]interface {}{
145- "flags" : s .convertMap (flags ),
146- }
147-
148- flagsString , err := json .Marshal (flagConfig )
149+ flagsString , err := s .generateResponse (flags )
149150
150151 if err != nil {
151152 return nil , err
0 commit comments