Documentation ¶
Index ¶
- Constants
- type AnalyticsProcessor
- type Client
- func (c *Client) BulkIdentify(batch []*IdentityTraits) error
- func (c *Client) GeIdentitySegments(identifier string, traits []*Trait) ([]*segments.SegmentModel, error)
- func (c *Client) GetEnvironmentFlags() (Flags, error)
- func (c *Client) GetEnvironmentFlagsFromAPI(ctx context.Context) (Flags, error)
- func (c *Client) GetEnvironmentFlagsFromDocument(ctx context.Context, env *environments.EnvironmentModel) (Flags, error)
- func (c *Client) GetIdentityFlags(identifier string, traits []*Trait) (Flags, error)
- func (c *Client) GetIdentityFlagsFromAPI(ctx context.Context, identifier string, traits []*Trait) (Flags, error)
- func (c *Client) GetIdentityFlagsFromDocument(ctx context.Context, env *environments.EnvironmentModel, identifier string, ...) (Flags, error)
- func (c *Client) UpdateEnvironment(ctx context.Context) error
- type Flag
- type Flags
- type FlagsmithAPIError
- type FlagsmithClientError
- type IdentityTraits
- type Logger
- type Option
- func WithAnalytics() Option
- func WithBaseURL(url string) Option
- func WithContext(ctx context.Context) Option
- func WithCustomHeaders(headers map[string]string) Option
- func WithDefaultHandler(handler func(string) Flag) Option
- func WithEnvironmentRefreshInterval(interval time.Duration) Option
- func WithLocalEvaluation() Option
- func WithLogger(logger Logger) Option
- func WithProxy(proxyURL string) Option
- func WithRemoteEvaluation() Option
- func WithRequestTimeout(timeout time.Duration) Option
- func WithRetries(count int, waitTime time.Duration) Option
- type Trait
Constants ¶
const ( // Number of seconds to wait for a request to // complete before terminating the request DefaultTimeout = 10 * time.Second // Default base URL for the API DefaultBaseURL = "https://edge.api.flagsmith.com/api/v1/" )
const AnalyticsEndpoint = "analytics/flags/"
const AnalyticsTimerInMilli = 10 * 1000
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnalyticsProcessor ¶
type AnalyticsProcessor struct {
// contains filtered or unexported fields
}
func NewAnalyticsProcessor ¶
func (*AnalyticsProcessor) Flush ¶
func (a *AnalyticsProcessor) Flush(ctx context.Context)
func (*AnalyticsProcessor) TrackFeature ¶
func (a *AnalyticsProcessor) TrackFeature(featureName string)
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client provides various methods to query Flagsmith API
func (*Client) BulkIdentify ¶ added in v2.1.0
func (c *Client) BulkIdentify(batch []*IdentityTraits) error
BulkIdentify can be used to create/overwrite identities(with traits) in bulk NOTE: This method only works with Edge API endpoint
func (*Client) GeIdentitySegments ¶
func (c *Client) GeIdentitySegments(identifier string, traits []*Trait) ([]*segments.SegmentModel, error)
Returns an array of segments that the given identity is part of
func (*Client) GetEnvironmentFlags ¶
Returns `Flags` struct holding all the flags for the current environment
func (*Client) GetEnvironmentFlagsFromAPI ¶
func (*Client) GetEnvironmentFlagsFromDocument ¶
func (c *Client) GetEnvironmentFlagsFromDocument(ctx context.Context, env *environments.EnvironmentModel) (Flags, error)
func (*Client) GetIdentityFlags ¶
Returns `Flags` struct holding all the flags for the current environment for a given identity. Will also upsert all traits to the Flagsmith API for future evaluations. Providing a trait with a value of nil will remove the trait from the identity if it exists.
func (*Client) GetIdentityFlagsFromAPI ¶
func (*Client) GetIdentityFlagsFromDocument ¶
func (c *Client) GetIdentityFlagsFromDocument(ctx context.Context, env *environments.EnvironmentModel, identifier string, traits []*Trait) (Flags, error)
type Flags ¶
type Flags struct {
// contains filtered or unexported fields
}
func (*Flags) GetFeatureValue ¶
Returns the value of a particular flag
type FlagsmithAPIError ¶
type FlagsmithAPIError struct {
// contains filtered or unexported fields
}
func (FlagsmithAPIError) Error ¶
func (e FlagsmithAPIError) Error() string
type FlagsmithClientError ¶
type FlagsmithClientError struct {
// contains filtered or unexported fields
}
func (FlagsmithClientError) Error ¶
func (e FlagsmithClientError) Error() string
type IdentityTraits ¶ added in v2.1.0
type Logger ¶ added in v2.3.0
type Logger interface { // Errorf logs an error message with the given format and arguments. Errorf(format string, v ...interface{}) // Warnf logs a warning message with the given format and arguments. Warnf(format string, v ...interface{}) // Debugf logs a debug message with the given format and arguments. Debugf(format string, v ...interface{}) }
Logger is the interface used for logging by flagsmith client. This interface defines the methods that a logger implementation must implement. It is used to abstract logging and enable clients to use any logger implementation they want.
type Option ¶
type Option func(c *Client)
func WithAnalytics ¶
func WithAnalytics() Option
func WithBaseURL ¶
func WithContext ¶
func WithCustomHeaders ¶
func WithDefaultHandler ¶
func WithLocalEvaluation ¶
func WithLocalEvaluation() Option
func WithLogger ¶ added in v2.3.0
Allows the client to use any logger that implements the `Logger` interface
func WithProxy ¶ added in v2.3.0
WithProxy returns an Option function that sets the proxy(to be used by internal resty client). The proxyURL argument is a string representing the URL of the proxy server to use, e.g. "http://proxy.example.com:8080".
func WithRemoteEvaluation ¶
func WithRemoteEvaluation() Option
func WithRequestTimeout ¶
type Trait ¶
type Trait struct { TraitKey string `json:"trait_key"` TraitValue interface{} `json:"trait_value"` }
func (*Trait) ToTraitModel ¶
func (t *Trait) ToTraitModel() *traits.TraitModel