model

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewExperimentParams

func NewExperimentParams() *experimentParams

Types

type CustomDiversionBucket

type CustomDiversionBucket struct {
}

func NewCustomDiversionBucket

func NewCustomDiversionBucket() *CustomDiversionBucket

func (*CustomDiversionBucket) Match

func (b *CustomDiversionBucket) Match(experimentContext *ExperimentContext) bool

type DiversionBucket

type DiversionBucket interface {
	Match(*ExperimentContext) bool
}

DiversionBucket is a interface by the bucket type to match diversion

func NewDiversionBucket

func NewDiversionBucket(bucketType string) DiversionBucket

type Domain

type Domain struct {
	*swagger.Domain
	// contains filtered or unexported fields
}

func NewDomain

func NewDomain(domain *swagger.Domain) *Domain

func (*Domain) AddDebugUsers

func (d *Domain) AddDebugUsers(users []string)

AddDebugUsers

func (*Domain) AddFeature

func (d *Domain) AddFeature(feature *Feature)

AddFeature

func (*Domain) AddLayer

func (d *Domain) AddLayer(layer *Layer)

func (*Domain) Features

func (d *Domain) Features() []*Feature

func (*Domain) Init

func (d *Domain) Init() error

func (*Domain) Layers

func (d *Domain) Layers() []*Layer

Layers

func (*Domain) Match

func (d *Domain) Match(experimentContext *ExperimentContext) bool

func (*Domain) MatchDebugUsers

func (d *Domain) MatchDebugUsers(experimentContext *ExperimentContext) bool

MatchDebugUsers return true if debug_users is set and debug_users contain of uid

type ExpParameter

type ExpParameter struct {
	Key   string `json:"key"`
	Type  string `json:"type"`
	Value any    `json:"value"`
}

type Experiment

type Experiment struct {
	*swagger.Experiment
	// contains filtered or unexported fields
}

func NewExperiment

func NewExperiment(experiment *swagger.Experiment) *Experiment

func (*Experiment) AddDebugUsers

func (e *Experiment) AddDebugUsers(users []string)

AddDebugUsers

func (*Experiment) AddExperimentVersion

func (e *Experiment) AddExperimentVersion(experimentVersion *ExperimentVersion)

AddExperimentVersion

func (*Experiment) ExperimentVersions

func (e *Experiment) ExperimentVersions() []*ExperimentVersion

ExperimentVersions return all experiment versions

func (*Experiment) Init

func (e *Experiment) Init() error

func (*Experiment) Match

func (e *Experiment) Match(experimentContext *ExperimentContext) bool

func (*Experiment) MatchDebugUsers

func (e *Experiment) MatchDebugUsers(experimentContext *ExperimentContext) bool

MatchDebugUsers return true if debug_users is set and debug_users contain of uid

type ExperimentContext

type ExperimentContext struct {
	RequestId string

	// Uid
	Uid string

	// FilterParams is map of params, use for filter condition
	FilterParams map[string]interface{}
	// contains filtered or unexported fields
}

func (*ExperimentContext) ExperimentHashString

func (c *ExperimentContext) ExperimentHashString() string

func (*ExperimentContext) SetExperimentHashString

func (c *ExperimentContext) SetExperimentHashString(str string)

type ExperimentParams

type ExperimentParams interface {
	AddParam(key string, value interface{})

	AddParams(params map[string]interface{})

	Get(key string, defaultValue interface{}) interface{}

	GetString(key, defaultValue string) string

	GetInt(key string, defaultValue int) int

	GetFloat(key string, defaultValue float64) float64

	GetInt64(key string, defaultValue int64) int64
}

ExperimentParams offers Get* function to get value by the key If not found the key, defaultValue will return

func MergeExperimentParams

func MergeExperimentParams(layersParamsMap map[string]ExperimentParams) ExperimentParams

type ExperimentResult

type ExperimentResult struct {
	ExperimentContext *ExperimentContext
	// contains filtered or unexported fields
}

func NewExperimentResult

func NewExperimentResult(projectName string, experimentContext *ExperimentContext, project *Project) *ExperimentResult

func (*ExperimentResult) AddExperimentVersion

func (r *ExperimentResult) AddExperimentVersion(experimentVersion *ExperimentVersion)

AddExperimentVersion

func (*ExperimentResult) GetExpId

func (r *ExperimentResult) GetExpId() string

func (*ExperimentResult) GetExperimentParams

func (r *ExperimentResult) GetExperimentParams() ExperimentParams

func (*ExperimentResult) Info

func (r *ExperimentResult) Info() string

func (*ExperimentResult) Init

func (r *ExperimentResult) Init()

type ExperimentVersion

type ExperimentVersion struct {
	*swagger.ExperimentVersion
	// contains filtered or unexported fields
}

func NewExperimentVersion

func NewExperimentVersion(experimentVersion *swagger.ExperimentVersion) *ExperimentVersion

func (*ExperimentVersion) AddDebugUsers

func (e *ExperimentVersion) AddDebugUsers(users []string)

AddDebugUsers

func (*ExperimentVersion) Experiment

func (e *ExperimentVersion) Experiment() *Experiment

Experiment

func (*ExperimentVersion) Init

func (e *ExperimentVersion) Init() error

Init

func (*ExperimentVersion) Match

func (e *ExperimentVersion) Match(experimentContext *ExperimentContext) bool

func (*ExperimentVersion) MatchDebugUsers

func (e *ExperimentVersion) MatchDebugUsers(experimentContext *ExperimentContext) bool

MatchDebugUsers return true if debug_users is set and debug_users contain of uid

func (*ExperimentVersion) Params

func (e *ExperimentVersion) Params() map[string]any

Params

func (*ExperimentVersion) SetExperiment

func (e *ExperimentVersion) SetExperiment(experiment *Experiment)

SetExperiment

type Feature

type Feature struct {
	*swagger.Feature
	// contains filtered or unexported fields
}

func NewFeature

func NewFeature(feature *swagger.Feature) *Feature

func (*Feature) Init

func (f *Feature) Init() error

Init

func (*Feature) Match

func (f *Feature) Match(experimentContext *ExperimentContext) bool

Match

func (*Feature) Params

func (f *Feature) Params() map[string]any

Params

type FilterDiversionBucket

type FilterDiversionBucket struct {
	Filter              string
	EvaluableExpression *govaluate.EvaluableExpression
}

func NewFilterDiversionBucket

func NewFilterDiversionBucket(filter string) (*FilterDiversionBucket, error)

NewFilterDiversionBucket return instance of FilterDiversionBucket

func (*FilterDiversionBucket) Match

func (b *FilterDiversionBucket) Match(experimentContext *ExperimentContext) bool

Match is a function of FilterDiversionBucket implements the DiversionBucket interface

type Layer

type Layer struct {
	*swagger.Layer
	// contains filtered or unexported fields
}

func NewLayer

func NewLayer(layer *swagger.Layer) *Layer

func (*Layer) AddDomain

func (l *Layer) AddDomain(domain *Domain)

AddDomain assign a domain to layer

func (*Layer) AddExperiment

func (l *Layer) AddExperiment(experiment *Experiment)

AddExperiment add experiment to layer

func (*Layer) Domains

func (l *Layer) Domains() []*Domain

Domains return all domains

func (*Layer) Experiments

func (l *Layer) Experiments() []*Experiment

Experiments return all experiments

type Project

type Project struct {
	*swagger.Project
	// contains filtered or unexported fields
}

func NewProject

func NewProject(project *swagger.Project) *Project

func (*Project) AddDomain

func (p *Project) AddDomain(domain *Domain)

func (*Project) AddLayer

func (p *Project) AddLayer(layer *Layer)

func (*Project) DefaultDomain

func (p *Project) DefaultDomain() *Domain

func (*Project) GetDomains

func (p *Project) GetDomains() map[int]*Domain

func (*Project) GetLayer

func (p *Project) GetLayer(layerId int) *Layer

func (*Project) SetDefaultDomain

func (p *Project) SetDefaultDomain(domain *Domain)

type UidDiversionBucket

type UidDiversionBucket struct {
	// contains filtered or unexported fields
}

func NewUidDiversionBucket

func NewUidDiversionBucket(bucketCount int, bucketStr string) *UidDiversionBucket

func (*UidDiversionBucket) Match

func (b *UidDiversionBucket) Match(experimentContext *ExperimentContext) bool

type UidHashDiversionBucket

type UidHashDiversionBucket struct {
	*UidDiversionBucket
}

func NewUidHashDiversionBucket

func NewUidHashDiversionBucket(bucketCount int, bucketStr string) *UidHashDiversionBucket

func (*UidHashDiversionBucket) Match

func (b *UidHashDiversionBucket) Match(experimentContext *ExperimentContext) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL