@@ -156,17 +156,22 @@ func NewResolver(store store.IStore, logger *logger.Logger, jsonEvalTracer trace
156156 return Resolver {store : store , Logger : logger , tracer : jsonEvalTracer }
157157}
158158
159- func (je * Resolver ) ResolveAllValues (ctx context.Context , reqID string , context map [string ]any ) []AnyValue {
159+ func (je * Resolver ) ResolveAllValues (ctx context.Context , reqID string , context map [string ]any ) ( []AnyValue , error ) {
160160 _ , span := je .tracer .Start (ctx , "resolveAll" )
161161 defer span .End ()
162162
163+ var err error
164+ allFlags , err := je .store .GetAll (ctx )
165+ if err != nil {
166+ return nil , fmt .Errorf ("error retreiving flags from the store: %w" , err )
167+ }
168+
163169 values := []AnyValue {}
164170 var value interface {}
165171 var variant string
166172 var reason string
167173 var metadata map [string ]interface {}
168- var err error
169- allFlags := je .store .GetAll (ctx )
174+
170175 for flagKey , flag := range allFlags {
171176 if flag .State == Disabled {
172177 // ignore evaluation of disabled flag
@@ -176,44 +181,21 @@ func (je *Resolver) ResolveAllValues(ctx context.Context, reqID string, context
176181 defaultValue := flag .Variants [flag .DefaultVariant ]
177182 switch defaultValue .(type ) {
178183 case bool :
179- value , variant , reason , metadata , err = resolve [bool ](
180- ctx ,
181- reqID ,
182- flagKey ,
183- context ,
184- je .evaluateVariant ,
185- )
184+ value , variant , reason , metadata , err = resolve [bool ](ctx , reqID , flagKey , context , je .evaluateVariant )
186185 case string :
187- value , variant , reason , metadata , err = resolve [string ](
188- ctx ,
189- reqID ,
190- flagKey ,
191- context ,
192- je .evaluateVariant ,
193- )
186+ value , variant , reason , metadata , err = resolve [string ](ctx , reqID , flagKey , context , je .evaluateVariant )
194187 case float64 :
195- value , variant , reason , metadata , err = resolve [float64 ](
196- ctx ,
197- reqID ,
198- flagKey ,
199- context ,
200- je .evaluateVariant ,
201- )
188+ value , variant , reason , metadata , err = resolve [float64 ](ctx , reqID , flagKey , context , je .evaluateVariant )
202189 case map [string ]any :
203- value , variant , reason , metadata , err = resolve [map [string ]any ](
204- ctx ,
205- reqID ,
206- flagKey ,
207- context ,
208- je .evaluateVariant ,
209- )
190+ value , variant , reason , metadata , err = resolve [map [string ]any ](ctx , reqID , flagKey , context , je .evaluateVariant )
210191 }
211192 if err != nil {
212193 je .Logger .ErrorWithID (reqID , fmt .Sprintf ("bulk evaluation: key: %s returned error: %s" , flagKey , err .Error ()))
213194 }
214195 values = append (values , NewAnyValue (value , variant , reason , flagKey , metadata , err ))
215196 }
216- return values
197+
198+ return values , nil
217199}
218200
219201func (je * Resolver ) ResolveBooleanValue (
0 commit comments