model

package
v1.11.1 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2021 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const ReadDB dbMode = "ReadDB"

ReadDB ...

Variables

This section is empty.

Functions

This section is empty.

Types

type Group

type Group struct {
	*Model
}

Group ...

func (*Group) Acquire added in v1.3.0

func (m *Group) Acquire(ctx context.Context, kind, uid string) (*schema.Group, error)

Acquire ...

func (*Group) AcquireID added in v1.3.0

func (m *Group) AcquireID(ctx context.Context, kind, uid string) (int64, error)

AcquireID ...

func (*Group) BatchAdd

func (m *Group) BatchAdd(ctx context.Context, groups []tpl.GroupBody) error

BatchAdd 批量添加群组

func (*Group) BatchAddMembers

func (m *Group) BatchAddMembers(ctx context.Context, group *schema.Group, users []string) error

BatchAddMembers 批量添加群组成员,已存在则更新 sync_at

func (*Group) Delete added in v1.2.0

func (m *Group) Delete(ctx context.Context, groupID int64) error

Delete 删除指定群组

func (*Group) Find

func (m *Group) Find(ctx context.Context, kind string, pg tpl.Pagination) ([]schema.Group, int, error)

Find 根据条件查找 groups

func (*Group) FindByUID

func (m *Group) FindByUID(ctx context.Context, kind, uid, selectStr string) (*schema.Group, error)

FindByUID 根据 uid 返回 group 数据

func (*Group) FindIDsByUser added in v1.4.0

func (m *Group) FindIDsByUser(ctx context.Context, userID int64) ([]int64, error)

FindIDsByUser 根据 userID 查找加入的 Group ID 数组

func (*Group) FindLabels added in v1.3.0

func (m *Group) FindLabels(ctx context.Context, groupID int64, pg tpl.Pagination) ([]tpl.MyLabel, int, error)

FindLabels 根据群组 ID 返回其 labels 数据。TODO:支持更多筛选条件和分页

func (*Group) FindMembers

func (m *Group) FindMembers(ctx context.Context, groupID int64, pg tpl.Pagination) ([]tpl.GroupMember, int, error)

FindMembers 根据条件查找群组成员

func (*Group) FindSettings added in v1.2.0

func (m *Group) FindSettings(ctx context.Context, groupID, productID, moduleID, settingID int64, pg tpl.Pagination, channel, client string) ([]tpl.MySetting, int, error)

FindSettings 根据 Group ID, updateGt, productName 返回其 settings 数据。

func (*Group) RemoveMembers

func (m *Group) RemoveMembers(ctx context.Context, groupID, userID int64, syncLt int64) error

RemoveMembers 删除群组的成员

func (*Group) Update added in v1.2.0

func (m *Group) Update(ctx context.Context, groupID int64, changed map[string]interface{}) (*schema.Group, error)

Update 更新指定群组

type Healthz

type Healthz struct {
	*Model
}

Healthz ...

func (*Healthz) DBStats

func (m *Healthz) DBStats(ctx context.Context) sql.DBStats

DBStats ...

type Label

type Label struct {
	*Model
}

Label ...

func (*Label) Acquire added in v1.3.0

func (m *Label) Acquire(ctx context.Context, productID int64, labelName string) (*schema.Label, error)

Acquire ...

func (*Label) AcquireByID added in v1.3.0

func (m *Label) AcquireByID(ctx context.Context, labelID int64) (*schema.Label, error)

AcquireByID ...

func (*Label) AcquireID added in v1.3.0

func (m *Label) AcquireID(ctx context.Context, productID int64, labelName string) (int64, error)

AcquireID ...

func (*Label) AcquireRelease added in v1.3.0

func (m *Label) AcquireRelease(ctx context.Context, labelID int64) (int64, error)

AcquireRelease ...

func (*Label) Assign

func (m *Label) Assign(ctx context.Context, labelID int64, users []string, groups []*tpl.GroupKindUID) (*tpl.LabelReleaseInfo, error)

Assign 把标签批量分配给用户或群组,如果用户或群组不存在则忽略

func (*Label) Cleanup added in v1.5.0

func (m *Label) Cleanup(ctx context.Context, id int64) error

Cleanup 清除产品环境标签下所有的用户、群组和百分比规则

func (*Label) Create

func (m *Label) Create(ctx context.Context, label *schema.Label) error

Create ...

func (*Label) Delete

func (m *Label) Delete(ctx context.Context, id int64) error

Delete 对标签进行物理删除

func (*Label) Find

func (m *Label) Find(ctx context.Context, productID int64, pg tpl.Pagination) ([]schema.Label, int, error)

Find 根据条件查找 labels

func (*Label) FindByName

func (m *Label) FindByName(ctx context.Context, productID int64, name, selectStr string) (*schema.Label, error)

FindByName 根据 productID 和 name 返回 label 数据

func (*Label) ListGroups added in v1.3.0

func (m *Label) ListGroups(ctx context.Context, labelID int64, pg tpl.Pagination) ([]tpl.LabelGroupInfo, int, error)

ListGroups ...

func (*Label) ListUsers added in v1.3.0

func (m *Label) ListUsers(ctx context.Context, labelID int64, pg tpl.Pagination) ([]tpl.LabelUserInfo, int, error)

ListUsers ...

func (*Label) Offline

func (m *Label) Offline(ctx context.Context, labelID int64) error

Offline 标记 label 下线,同时真删除用户和群组的 labels

func (*Label) Recall added in v1.3.0

func (m *Label) Recall(ctx context.Context, labelID, release int64) error

Recall 撤销指定批次的用户或群组的环境标签

func (*Label) RemoveGroupLabel added in v1.3.0

func (m *Label) RemoveGroupLabel(ctx context.Context, groupID, labelID int64) (int64, error)

RemoveGroupLabel 删除群组的 label

func (*Label) RemoveUserLabel added in v1.3.0

func (m *Label) RemoveUserLabel(ctx context.Context, userID, labelID int64) (int64, error)

RemoveUserLabel 删除用户的 label

func (*Label) Update added in v1.2.0

func (m *Label) Update(ctx context.Context, labelID int64, changed map[string]interface{}) (*schema.Label, error)

Update 更新指定环境标签

type LabelRule added in v1.3.0

type LabelRule struct {
	*Model
}

LabelRule ...

func (*LabelRule) Acquire added in v1.3.0

func (m *LabelRule) Acquire(ctx context.Context, labelRuleID int64) (*schema.LabelRule, error)

Acquire ...

func (*LabelRule) ApplyRule added in v1.8.0

func (m *LabelRule) ApplyRule(ctx context.Context, productID int64, userID int64, labelID int64, kind string) (int, error)

ApplyRule ...

func (*LabelRule) ApplyRules added in v1.3.0

func (m *LabelRule) ApplyRules(ctx context.Context, productID int64, userID int64, excludeLabels []int64, kind string) (int, error)

ApplyRules ...

func (*LabelRule) ApplyRulesToAnonymous added in v1.6.0

func (m *LabelRule) ApplyRulesToAnonymous(ctx context.Context, anonymousID string, productID int64, kind string) ([]schema.UserCacheLabel, error)

ApplyRulesToAnonymous ...

func (*LabelRule) ComputeUserRule added in v1.8.0

func (m *LabelRule) ComputeUserRule(ctx context.Context, userID int64, excludeLabels []int64, rules []schema.LabelRule) (int, error)

ComputeUserRule ...

func (*LabelRule) Create added in v1.3.0

func (m *LabelRule) Create(ctx context.Context, labelRule *schema.LabelRule) error

Create ...

func (*LabelRule) Delete added in v1.3.0

func (m *LabelRule) Delete(ctx context.Context, id int64) (int64, error)

Delete ...

func (*LabelRule) Find added in v1.3.0

func (m *LabelRule) Find(ctx context.Context, productID, labelID int64) ([]schema.LabelRule, error)

Find ...

func (*LabelRule) Update added in v1.3.0

func (m *LabelRule) Update(ctx context.Context, labelRuleID int64, changed map[string]interface{}) (*schema.LabelRule, error)

Update ...

type Model added in v1.3.0

type Model struct {
	SQL  *service.SQL
	DB   *goqu.Database
	RdDB *goqu.Database
}

Model ...

type Models

type Models struct {
	Model       *Model
	Healthz     *Healthz
	User        *User
	Group       *Group
	Product     *Product
	Label       *Label
	Module      *Module
	Setting     *Setting
	LabelRule   *LabelRule
	SettingRule *SettingRule
	Statistic   *Statistic
}

Models ...

func NewModels

func NewModels(sql *service.SQL) *Models

NewModels ...

func (*Models) ApplyLabelRulesAndRefreshUserLabels added in v1.3.0

func (ms *Models) ApplyLabelRulesAndRefreshUserLabels(ctx context.Context, productID int64, product string, userID int64, now time.Time, force bool) (*schema.User, error)

ApplyLabelRulesAndRefreshUserLabels ...

func (*Models) TryApplyLabelRulesAndRefreshUserLabels added in v1.3.0

func (ms *Models) TryApplyLabelRulesAndRefreshUserLabels(ctx context.Context, productID int64, product string, userID int64, now time.Time, force bool) *schema.User

TryApplyLabelRulesAndRefreshUserLabels ...

func (*Models) TryApplySettingRules added in v1.3.0

func (ms *Models) TryApplySettingRules(ctx context.Context, productID, userID int64)

TryApplySettingRules ...

type Module

type Module struct {
	*Model
}

Module ...

func (*Module) Acquire added in v1.3.0

func (m *Module) Acquire(ctx context.Context, productID int64, moduleName string) (*schema.Module, error)

Acquire ...

func (*Module) AcquireID added in v1.3.0

func (m *Module) AcquireID(ctx context.Context, productID int64, moduleName string) (int64, error)

AcquireID ...

func (*Module) Create

func (m *Module) Create(ctx context.Context, module *schema.Module) error

Create ...

func (*Module) Find

func (m *Module) Find(ctx context.Context, productID int64, pg tpl.Pagination) ([]schema.Module, int, error)

Find 根据条件查找 modules

func (*Module) FindByName

func (m *Module) FindByName(ctx context.Context, productID int64, name, selectStr string) (*schema.Module, error)

FindByName 根据 productID 和 name 返回 module 数据

func (*Module) Offline

func (m *Module) Offline(ctx context.Context, moduleID int64) error

Offline 标记模块下线

func (*Module) Update added in v1.2.0

func (m *Module) Update(ctx context.Context, moduleID int64, changed map[string]interface{}) (*schema.Module, error)

Update 更新指定功能模块

type Product

type Product struct {
	*Model
}

Product ...

func (*Product) Acquire added in v1.3.0

func (m *Product) Acquire(ctx context.Context, productName string) (*schema.Product, error)

Acquire ...

func (*Product) AcquireID added in v1.3.0

func (m *Product) AcquireID(ctx context.Context, productName string) (int64, error)

AcquireID ...

func (*Product) Create

func (m *Product) Create(ctx context.Context, product *schema.Product) error

Create ...

func (*Product) Delete

func (m *Product) Delete(ctx context.Context, productID int64) error

Delete 对产品进行逻辑删除

func (*Product) Find

func (m *Product) Find(ctx context.Context, pg tpl.Pagination) ([]schema.Product, int, error)

Find 根据条件查找 products

func (*Product) FindByName

func (m *Product) FindByName(ctx context.Context, name, selectStr string) (*schema.Product, error)

FindByName 根据 name 返回 product 数据

func (*Product) Offline

func (m *Product) Offline(ctx context.Context, productID int64) error

Offline 下线产品

func (*Product) Statistics added in v1.3.0

func (m *Product) Statistics(ctx context.Context, productID int64) (*tpl.ProductStatistics, error)

Statistics 返回产品的统计数据

func (*Product) Update added in v1.2.0

func (m *Product) Update(ctx context.Context, productID int64, changed map[string]interface{}) (*schema.Product, error)

Update 更新指定功能模块

type Setting

type Setting struct {
	*Model
}

Setting ...

func (*Setting) Acquire added in v1.3.0

func (m *Setting) Acquire(ctx context.Context, moduleID int64, settingName string) (*schema.Setting, error)

Acquire ...

func (*Setting) AcquireByID added in v1.3.0

func (m *Setting) AcquireByID(ctx context.Context, settingID int64) (*schema.Setting, error)

AcquireByID ...

func (*Setting) AcquireID added in v1.3.0

func (m *Setting) AcquireID(ctx context.Context, moduleID int64, settingName string) (int64, error)

AcquireID ...

func (*Setting) AcquireRelease added in v1.3.0

func (m *Setting) AcquireRelease(ctx context.Context, settingID int64) (int64, error)

AcquireRelease ...

func (*Setting) Assign

func (m *Setting) Assign(ctx context.Context, settingID int64, value string, users []string, groups []*tpl.GroupKindUID) (*tpl.SettingReleaseInfo, error)

Assign 把标签批量分配给用户或群组,如果用户或群组不存在则忽略,如果已经分配,则把原值保存到 last_value 并更新值

func (*Setting) Cleanup added in v1.5.0

func (m *Setting) Cleanup(ctx context.Context, id int64) error

Cleanup 清除指定产品功能模块配置项下所有的用户、群组和百分比规则

func (*Setting) Create

func (m *Setting) Create(ctx context.Context, setting *schema.Setting) error

Create ...

func (*Setting) Delete

func (m *Setting) Delete(ctx context.Context, id int64) error

Delete 对配置项进行物理删除

func (*Setting) Find

func (m *Setting) Find(ctx context.Context, productID, moduleID int64, pg tpl.Pagination) ([]schema.Setting, int, error)

Find 根据条件查找 settings

func (*Setting) FindByName

func (m *Setting) FindByName(ctx context.Context, moduleID int64, name, selectStr string) (*schema.Setting, error)

FindByName 根据 moduleID 和 name 返回 setting 数据

func (*Setting) ListGroups added in v1.3.0

func (m *Setting) ListGroups(ctx context.Context, settingID int64, pg tpl.Pagination) ([]tpl.SettingGroupInfo, int, error)

ListGroups ...

func (*Setting) ListUsers added in v1.3.0

func (m *Setting) ListUsers(ctx context.Context, settingID int64, pg tpl.Pagination) ([]tpl.SettingUserInfo, int, error)

ListUsers ...

func (*Setting) Offline

func (m *Setting) Offline(ctx context.Context, moduleID, settingID int64) error

Offline 标记配置项下线,同时真删除用户和群组的配置项值

func (*Setting) Recall added in v1.3.0

func (m *Setting) Recall(ctx context.Context, settingID, release int64) error

Recall 撤销指定批次的用户或群组的配置项

func (*Setting) RemoveGroupSetting added in v1.3.0

func (m *Setting) RemoveGroupSetting(ctx context.Context, groupID, settingID int64) (int64, error)

RemoveGroupSetting 删除群组的 setting

func (*Setting) RemoveUserSetting added in v1.3.0

func (m *Setting) RemoveUserSetting(ctx context.Context, userID, settingID int64) (int64, error)

RemoveUserSetting 删除用户的 setting

func (*Setting) RollbackGroupSetting added in v1.3.0

func (m *Setting) RollbackGroupSetting(ctx context.Context, groupID, settingID int64) error

RollbackGroupSetting 回滚群组的 setting

func (*Setting) RollbackUserSetting added in v1.3.0

func (m *Setting) RollbackUserSetting(ctx context.Context, userID, settingID int64) error

RollbackUserSetting 回滚用户的 setting

func (*Setting) Update added in v1.2.0

func (m *Setting) Update(ctx context.Context, settingID int64, changed map[string]interface{}) (*schema.Setting, error)

Update 更新指定功能模块配置项

type SettingRule added in v1.3.0

type SettingRule struct {
	*Model
}

SettingRule ...

func (*SettingRule) Acquire added in v1.3.0

func (m *SettingRule) Acquire(ctx context.Context, settingRuleID int64) (*schema.SettingRule, error)

Acquire ...

func (*SettingRule) ApplyRules added in v1.3.0

func (m *SettingRule) ApplyRules(ctx context.Context, productID, userID int64, kind string) error

ApplyRules ...

func (*SettingRule) ApplyRulesToAnonymous added in v1.6.0

func (m *SettingRule) ApplyRulesToAnonymous(ctx context.Context, anonymousID string, productID int64, channel, client string, kind string) ([]tpl.MySetting, error)

ApplyRulesToAnonymous ...

func (*SettingRule) Create added in v1.3.0

func (m *SettingRule) Create(ctx context.Context, settingRule *schema.SettingRule) error

Create ...

func (*SettingRule) Delete added in v1.3.0

func (m *SettingRule) Delete(ctx context.Context, id int64) (int64, error)

Delete ...

func (*SettingRule) Find added in v1.3.0

func (m *SettingRule) Find(ctx context.Context, productID, settingID int64) ([]schema.SettingRule, error)

Find ...

func (*SettingRule) Update added in v1.3.0

func (m *SettingRule) Update(ctx context.Context, settingRuleID int64, changed map[string]interface{}) (*schema.SettingRule, error)

Update ...

type Statistic added in v1.3.0

type Statistic struct {
	*Model
}

Statistic ...

func (*Statistic) FindByKey added in v1.3.0

func (m *Statistic) FindByKey(ctx context.Context, key schema.StatisticKey) (*schema.Statistic, error)

FindByKey ...

type User

type User struct {
	*Model
}

User ...

func (*User) Acquire added in v1.3.0

func (m *User) Acquire(ctx context.Context, uid string) (*schema.User, error)

Acquire ...

func (*User) AcquireID added in v1.3.0

func (m *User) AcquireID(ctx context.Context, uid string) (int64, error)

AcquireID ...

func (*User) BatchAdd

func (m *User) BatchAdd(ctx context.Context, uids []string) error

BatchAdd 批量添加用户 uids 经过了 `^[0-9A-Za-z._-]{3,63}$` 正则验证

func (*User) Find added in v1.3.0

func (m *User) Find(ctx context.Context, pg tpl.Pagination) ([]schema.User, int, error)

Find 根据条件查找 products

func (*User) FindByUID

func (m *User) FindByUID(ctx context.Context, uid string, selectStr string) (*schema.User, error)

FindByUID 根据 uid 返回 user 数据

func (*User) FindLabels added in v1.3.0

func (m *User) FindLabels(ctx context.Context, userID int64, pg tpl.Pagination) ([]tpl.MyLabel, int, error)

FindLabels 根据用户 ID 返回其 labels 数据。

func (*User) FindSettings added in v1.2.0

func (m *User) FindSettings(ctx context.Context, userID, productID, moduleID, settingID int64, pg tpl.Pagination, channel, client string) ([]tpl.MySetting, int, error)

FindSettings 根据用户 ID 返回 settings 数据。

func (*User) FindSettingsUnionAll added in v1.2.0

func (m *User) FindSettingsUnionAll(ctx context.Context, groupIDs []int64, userID, productID, moduleID, settingID int64, pg tpl.Pagination, channel, client string) ([]tpl.MySetting, error)

FindSettingsUnionAll 根据用户 ID, updateGt, productName 返回其 settings 数据。

func (*User) RefreshLabels

func (m *User) RefreshLabels(ctx context.Context, id int64, now int64, force bool, product string) (*schema.User, []int64, bool, error)

RefreshLabels 更新 user 上的 labels 缓存,包括通过 group 关系获得的 labels

Jump to

Keyboard shortcuts

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