@@ -144,17 +144,17 @@ func MustNewClient(apiKey string, options ...Option) *Client {
144144// }
145145func (c * Client ) GetFlags (ctx context.Context , ec EvaluationContext ) (f Flags , err error ) {
146146 if ec .identifier != "" {
147- if c .config .offlineMode && c .offlineHandler != nil || c .config .localEvaluation {
148- f , err = c .getIdentityFlagsFromEnvironment (ec .identifier , ec .traits )
149- } else {
150- f , err = c .getIdentityFlagsFromAPI (ctx , ec .identifier , ec .traits )
151- }
152- if err != nil && c .defaultFlagHandler != nil {
153- f = Flags {defaultFlagHandler : c .defaultFlagHandler }
154- }
155- return f , err
147+ f , err = c .GetIdentityFlags (ctx , ec .identifier , ec .traits )
148+ } else {
149+ f , err = c .GetEnvironmentFlags (ctx )
150+ }
151+ if err == nil {
152+ return f , nil
153+ } else if c .defaultFlagHandler != nil {
154+ return Flags {defaultFlagHandler : c .defaultFlagHandler }, nil
155+ } else {
156+ return Flags {}, errors .New ("GetFlags failed and no default flag handler was provided" )
156157 }
157- return c .GetEnvironmentFlags (ctx )
158158}
159159
160160// UpdateEnvironment fetches the current environment state from the Flagsmith API. It is called periodically when using
@@ -223,30 +223,26 @@ func (c *Client) BulkIdentify(ctx context.Context, batch []*IdentityTraits) erro
223223
224224// GetEnvironmentFlags evaluates and returns the feature flags, using the current environment as the evaluation context.
225225//
226- // Use [Client.GetFlags] to evaluate the flags for an identity .
226+ // Deprecated: Use [Client.GetFlags] instead .
227227func (c * Client ) GetEnvironmentFlags (ctx context.Context ) (f Flags , err error ) {
228228 if c .config .localEvaluation || c .config .offlineMode {
229- if f , err = c .getEnvironmentFlagsFromEnvironment (); err == nil {
230- return f , nil
231- }
229+ f , err = c .getEnvironmentFlagsFromEnvironment ()
232230 } else {
233- if f , err = c .getEnvironmentFlagsFromAPI (ctx ); err == nil {
234- return f , nil
235- }
236- }
237- if c .offlineHandler != nil {
238- return c .getEnvironmentFlagsFromEnvironment ()
239- } else if c .defaultFlagHandler != nil {
240- return Flags {defaultFlagHandler : c .defaultFlagHandler }, nil
231+ f , err = c .getEnvironmentFlagsFromAPI (ctx )
241232 }
242- return Flags {}, & FlagsmithClientError { msg : fmt . Sprintf ( "Failed to fetch flags with error: %s" , err )}
233+ return f , err
243234}
244235
245236// GetIdentityFlags evaluates and returns the flags for an identity.
246237//
247238// Deprecated: Use GetFlags instead.
248239func (c * Client ) GetIdentityFlags (ctx context.Context , identifier string , traits map [string ]interface {}) (f Flags , err error ) {
249- return c .GetFlags (ctx , NewEvaluationContext (identifier , traits ))
240+ if c .config .offlineMode && c .offlineHandler != nil || c .config .localEvaluation {
241+ f , err = c .getIdentityFlagsFromEnvironment (identifier , traits )
242+ } else {
243+ f , err = c .getIdentityFlagsFromAPI (ctx , identifier , traits )
244+ }
245+ return f , err
250246}
251247
252248// getEnvironmentFlagsFromAPI tries to contact the Flagsmith API to get the latest environment data.
0 commit comments