biz

package
v0.0.0-...-9def770 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2024 License: MIT Imports: 17 Imported by: 0

README

Biz

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrUserNotFound is user not found.
	ErrUserNotFound = errors.NotFound(v1.ErrorReason_USER_NOT_FOUND.String(), "user not found")
)

ProviderSet is biz providers.

Functions

This section is empty.

Types

type AuthorizeOptions

type AuthorizeOptions struct {
	TypeMeta `json:",inline"`
}

AuthorizeOptions may be provided when authorize an API object.

type AuthzPolicy

type AuthzPolicy struct {
	ladon.DefaultPolicy
}

AuthzPolicy defines iam policy type.

func (AuthzPolicy) String

func (ap AuthzPolicy) String() string

String returns the string format of Policy.

type CreateOptions

type CreateOptions struct {
	TypeMeta `json:",inline"`

	// When present, indicates that modifications should not be
	// persisted. An invalid or unrecognized dryRun directive will
	// result in an error response and no further processing of the
	// request. Valid values are:
	// - All: all dry run stages will be processed
	// +optional
	DryRun []string `json:"dryRun,omitempty"`
}

type DeleteOptions

type DeleteOptions struct {
	TypeMeta `json:",inline"`

	// +optional
	Unscoped bool `json:"unscoped"`
}

DeleteOptions may be provided when deleting an API object.

type ExportOptions

type ExportOptions struct {
	TypeMeta `json:",inline"`

	// Should this value be exported.  Export strips fields that a user can not specify.
	// Deprecated. Planned for removal in 1.18.
	Export bool `json:"export"`
	// Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
	// Deprecated. Planned for removal in 1.18.
	Exact bool `json:"exact"`
}

ExportOptions is the query options to the standard REST get call. Deprecated. Planned for removal in 1.18.

type Extend

type Extend map[string]interface{}

func (Extend) Merge

func (ext Extend) Merge(extendShadow string) Extend

Merge merge extend fields from extendShadow.

func (Extend) String

func (ext Extend) String() string

String returns the string format of Extend.

type GetOptions

type GetOptions struct {
	TypeMeta `json:",inline"`
}

GetOptions is the standard query options to the standard REST get call.

type Greeter

type Greeter struct {
	Hello string
}

Greeter is a Greeter model.

type GreeterRepo

type GreeterRepo interface {
	Save(context.Context, *Greeter) (*Greeter, error)
	Update(context.Context, *Greeter) (*Greeter, error)
	FindByID(context.Context, int64) (*Greeter, error)
	ListByHello(context.Context, string) ([]*Greeter, error)
	ListAll(context.Context) ([]*Greeter, error)
}

GreeterRepo is a Greater repo.

type GreeterUsecase

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

GreeterUsecase is a Greeter usecase.

func NewGreeterUsecase

func NewGreeterUsecase(repo GreeterRepo, logger log.Logger) *GreeterUsecase

NewGreeterUsecase new a Greeter usecase.

func (*GreeterUsecase) CreateGreeter

func (uc *GreeterUsecase) CreateGreeter(ctx context.Context, g *Greeter) (*Greeter, error)

CreateGreeter creates a Greeter, and returns the new Greeter.

type ListMeta

type ListMeta struct {
	TotalCount int64 `json:"totalCount,omitempty"`
}

ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

type ListOptions

type ListOptions struct {
	TypeMeta `json:",inline"`

	// LabelSelector is used to find matching REST resources.
	LabelSelector string `json:"labelSelector,omitempty" form:"labelSelector"`

	// FieldSelector restricts the list of returned objects by their fields. Defaults to everything.
	FieldSelector string `json:"fieldSelector,omitempty" form:"fieldSelector"`

	// TimeoutSeconds specifies the seconds of ClientIP type session sticky time.
	TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty"`

	// Offset specify the number of records to skip before starting to return the records.
	Offset *int64 `json:"offset,omitempty" form:"offset"`

	// Limit specify the number of records to be retrieved.
	Limit *int64 `json:"limit,omitempty" form:"limit"`
}

ListOptions is the query options to a standard REST list call.

type ObjectMeta

type ObjectMeta struct {
	// ID is the unique in time and space value for this object. It is typically generated by
	// the storage on successful creation of a resource and is not allowed to change on PUT
	// operations.
	//
	// Populated by the system.
	// Read-only.
	ID uint64 `json:"id,omitempty" gorm:"primary_key;AUTO_INCREMENT;column:id"`

	// InstanceID defines a string type resource identifier,
	// use prefixed to distinguish resource types, easy to remember, Url-friendly.
	InstanceID string `json:"instanceID,omitempty" gorm:"unique;column:instanceID;type:varchar(32);not null"`

	// Required: true
	// Name must be unique. Is required when creating resources.
	// Name is primarily intended for creation idempotence and configuration
	// definition.
	// It will be generated automated only if Name is not specified.
	// Cannot be updated.
	Name string `json:"name,omitempty" gorm:"column:name;type:varchar(64);not null" validate:"name"`

	// Extend store the fields that need to be added, but do not want to add a new table column, will not be stored in db.
	Extend Extend `json:"extend,omitempty" gorm:"-" validate:"omitempty"`

	// ExtendShadow is the shadow of Extend. DO NOT modify directly.
	ExtendShadow string `json:"-" gorm:"column:extendShadow" validate:"omitempty"`

	// CreatedAt is a timestamp representing the server time when this object was
	// created. It is not guaranteed to be set in happens-before order across separate operations.
	// Clients may not set this value. It is represented in RFC3339 form and is in UTC.
	//
	// Populated by the system.
	// Read-only.
	// Null for lists.
	CreatedAt time.Time `json:"createdAt,omitempty" gorm:"column:createdAt"`

	// UpdatedAt is a timestamp representing the server time when this object was updated.
	// Clients may not set this value. It is represented in RFC3339 form and is in UTC.
	//
	// Populated by the system.
	// Read-only.
	// Null for lists.
	UpdatedAt time.Time `json:"updatedAt,omitempty" gorm:"column:updatedAt"`
}

func (*ObjectMeta) AfterFind

func (obj *ObjectMeta) AfterFind(tx *gorm.DB) error

AfterFind run after find to unmarshal a extend shadown string into metav1.Extend struct.

func (*ObjectMeta) BeforeCreate

func (obj *ObjectMeta) BeforeCreate(tx *gorm.DB) error

BeforeCreate run before create database record.

func (*ObjectMeta) BeforeUpdate

func (obj *ObjectMeta) BeforeUpdate(tx *gorm.DB) error

BeforeUpdate run before update database record.

type PatchOptions

type PatchOptions struct {
	TypeMeta `json:",inline"`

	// When present, indicates that modifications should not be
	// persisted. An invalid or unrecognized dryRun directive will
	// result in an error response and no further processing of the
	// request. Valid values are:
	// - All: all dry run stages will be processed
	// +optional
	DryRun []string `json:"dryRun,omitempty"`

	// Force is going to "force" Apply requests. It means user will
	// re-acquire conflicting fields owned by other people. Force
	// flag must be unset for non-apply patch requests.
	// +optional
	Force bool `json:"force,omitempty"`
}

PatchOptions may be provided when patching an API object. PatchOptions is meant to be a superset of UpdateOptions.

type Policy

type Policy struct {

	// Standard object's metadata.
	ObjectMeta `json:"metadata,omitempty"`

	// The user of the policy.
	Username string `json:"username" gorm:"column:username" validate:"omitempty"`

	// AuthzPolicy policy, will not be stored in db.
	Policy AuthzPolicy `json:"policy,omitempty" gorm:"-" validate:"omitempty"`

	// The ladon policy content, just a string format of ladon.DefaultPolicy. DO NOT modify directly.
	PolicyShadow string `json:"-" gorm:"column:policyShadow" validate:"omitempty"`
}

func (*Policy) AfterCreate

func (p *Policy) AfterCreate(tx *gorm.DB) error

AfterCreate run after create database record.

func (*Policy) AfterFind

func (p *Policy) AfterFind(tx *gorm.DB) error

AfterFind run after find to unmarshal a policy string into ladon.DefaultPolicy struct.

func (*Policy) BeforeCreate

func (p *Policy) BeforeCreate(tx *gorm.DB) error

BeforeCreate run before create database record.

func (*Policy) BeforeUpdate

func (p *Policy) BeforeUpdate(tx *gorm.DB) error

BeforeUpdate run before update database record.

func (*Policy) TableName

func (p *Policy) TableName() string

TableName maps to mysql table name.

type PolicyList

type PolicyList struct {
	// Standard list metadata.
	ListMeta `json:",inline"`

	// List of policies.
	Items []*Policy `json:"items"`
}

PolicyList is the whole list of all policies which have been stored in stroage.

type PolicyRepo

type PolicyRepo interface {
	Create(ctx context.Context, policy *Policy, opts CreateOptions) error
	Update(ctx context.Context, policy *Policy, opts UpdateOptions) error
	Delete(ctx context.Context, username string, name string, opts DeleteOptions) error
	DeleteCollection(ctx context.Context, username string, names []string, opts DeleteOptions) error
	Get(ctx context.Context, username string, name string, opts GetOptions) (*Policy, error)
	List(ctx context.Context, username string, opts ListOptions) (*PolicyList, error)
}

PolicyRepo is a Greater repo.

type PolicyUsecase

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

PolicyUsecase is a Policy usecase.

func NewPolicyUsecase

func NewPolicyUsecase(repo PolicyRepo, logger log.Logger) *PolicyUsecase

func (*PolicyUsecase) Create

func (p *PolicyUsecase) Create(ctx context.Context, policy *Policy) error

type Secret

type Secret struct {

	// Standard object's metadata.
	ObjectMeta `       json:"metadata,omitempty"`
	Username   string `json:"username"           gorm:"column:username"  validate:"omitempty"`
	//nolint: tagliatelle
	SecretID  string `json:"secretID"           gorm:"column:secretID"  validate:"omitempty"`
	SecretKey string `json:"secretKey"          gorm:"column:secretKey" validate:"omitempty"`

	// Required: true
	Expires     int64  `json:"expires"     gorm:"column:expires"     validate:"omitempty"`
	Description string `json:"description" gorm:"column:description" validate:"description"`
}

Secret represents a secret restful resource. It is also used as gorm model.

func (*Secret) AfterCreate

func (s *Secret) AfterCreate(tx *gorm.DB) error

AfterCreate run after create database record.

func (*Secret) TableName

func (s *Secret) TableName() string

TableName maps to mysql table name.

type SecretList

type SecretList struct {

	// Standard list metadata.
	ListMeta `json:",inline"`

	// List of secrets
	Items []*Secret `json:"items"`
}

SecretList is the whole list of all secrets which have been stored in stroage.

type SecretRepo

type SecretRepo interface {
	Create(ctx context.Context, secret Secret, opts CreateOptions) error
	Update(ctx context.Context, secret Secret, opts UpdateOptions) error
	Delete(ctx context.Context, username, secretID string, opts DeleteOptions) error
	DeleteCollection(ctx context.Context, username string, secretIDs []string, opts DeleteOptions) error
	Get(ctx context.Context, username, secretID string, opts GetOptions) (Secret, error)
	List(ctx context.Context, username string, opts ListOptions) (*SecretList, error)
}

type SecretUsecase

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

PolicyUsecase is a Policy usecase.

func NewSecretUsecase

func NewSecretUsecase(repo SecretRepo, logger log.Logger) *SecretUsecase

func (*SecretUsecase) Create

func (uc *SecretUsecase) Create(ctx context.Context, secret Secret) error

func (*SecretUsecase) List

func (uc *SecretUsecase) List(ctx context.Context, username string, opts ListOptions) (list *SecretList, err error)

type TableOptions

type TableOptions struct {
	TypeMeta `json:",inline"`

	// NoHeaders is only exposed for internal callers. It is not included in our OpenAPI definitions
	// and may be removed as a field in a future release.
	NoHeaders bool `json:"-"`
}

TableOptions are used when a Table is requested by the caller.

type TypeMeta

type TypeMeta struct {
	// Kind is a string value representing the REST resource this object represents.
	// Servers may infer this from the endpoint the client submits requests to.
	// Cannot be updated.
	// In CamelCase.
	// required: false
	Kind string `json:"kind,omitempty"`

	// APIVersion defines the versioned schema of this representation of an object.
	// Servers should convert recognized schemas to the latest internal value, and
	// may reject unrecognized values.
	APIVersion string `json:"apiVersion,omitempty"`
}

type UpdateOptions

type UpdateOptions struct {
	TypeMeta `json:",inline"`

	// When present, indicates that modifications should not be
	// persisted. An invalid or unrecognized dryRun directive will
	// result in an error response and no further processing of the
	// request. Valid values are:
	// - All: all dry run stages will be processed
	// +optional
	DryRun []string `json:"dryRun,omitempty"`
}

UpdateOptions may be provided when updating an API object. All fields in UpdateOptions should also be present in PatchOptions.

type User

type User struct {
	ObjectMeta

	Status int `json:"status" gorm:"column:status" validate:"omitempty"`

	// Required: true
	Nickname string `json:"nickname" gorm:"column:nickname" validate:"required,min=1,max=30"`

	// Required: true
	Password string `json:"password,omitempty" gorm:"column:password" validate:"required"`

	// Required: true
	Email string `json:"email" gorm:"column:email" validate:"required,email,min=1,max=100"`

	Phone string `json:"phone" gorm:"column:phone" validate:"omitempty"`

	IsAdmin int `json:"isAdmin,omitempty" gorm:"column:isAdmin" validate:"omitempty"`

	TotalPolicy int64 `json:"totalPolicy" gorm:"-" validate:"omitempty"`

	LoginedAt time.Time `json:"loginedAt,omitempty" gorm:"column:loginedAt"`
}

func (*User) AfterCreate

func (u *User) AfterCreate(tx *gorm.DB) error

AfterCreate run after create database record.

func (*User) Compare

func (u *User) Compare(pwd string) error

Compare with the plain text password. Returns true if it's the same as the encrypted one (in the `User` struct).

func (*User) TableName

func (u *User) TableName() string

TableName maps to mysql table name.

type UserList

type UserList struct {

	// Standard list metadata.
	// +optional
	ListMeta `json:",inline"`

	Items []*User `json:"items"`
}

UserList is the whole list of all users which have been stored in stroage.

type UserRepo

type UserRepo interface {
	Create(ctx context.Context, user *User, opts CreateOptions) error
	Update(ctx context.Context, user *User, opts UpdateOptions) error
	Delete(ctx context.Context, username string, opts DeleteOptions) error
	DeleteCollection(ctx context.Context, usernames []string, opts DeleteOptions) error
	Get(ctx context.Context, user *User, opts GetOptions) (*User, error)
	List(ctx context.Context, opts ListOptions) (*UserList, error)
}

PolicyRepo is a Greater repo.

type UserUsecase

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

PolicyUsecase is a Policy usecase.

func NewUserUsecase

func NewUserUsecase(repo UserRepo, logger log.Logger, conf *conf.Server) *UserUsecase

func (*UserUsecase) Create

func (uuc *UserUsecase) Create(ctx context.Context, u *User) error

func (*UserUsecase) Get

func (uuc *UserUsecase) Get(ctx context.Context, u *User) (*User, error)

func (*UserUsecase) Login

func (uuc *UserUsecase) Login(ctx context.Context, username, password string) (string, error)

Jump to

Keyboard shortcuts

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