models

package
v0.0.0-...-4fa15db Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2024 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ImageFormatQcow2 = "qcow2"
	ImageFormatRaw   = "raw"
	ImageFormatRBD   = "rbd"
)

Variables

View Source
var (
	Mock sqlmock.Sqlmock
)

Functions

func CreateUser

func CreateUser(tx *sqlx.Tx, user *User, password string) (err error)

func GetColumnNames

func GetColumnNames[T any](obj *T) []string

func Init

func Init(cfg *config.MysqlConfig, t *testing.T) (err error)

func Instance

func Instance() *sqlx.DB

Types

type CustomClaims

type CustomClaims struct {
	ID       int64
	UserName string
	// AuthorityId uint // 角色认证ID
	jwt.StandardClaims
}

CustomClaims 加解密需要生成的结构

type Image

type Image struct {
	ID          int64                    `db:"id" json:"id"`
	RepoID      int64                    `db:"repo_id" json:"repoId"`
	Tag         string                   `db:"tag" json:"tag" description:"image tag, default:latest"`
	Labels      JSONColumn[Labels]       `db:"labels" json:"labels"`
	Size        int64                    `db:"size" json:"size" description:"actual file size(in bytes)"`
	VirtualSize int64                    `db:"virtual_size" json:"virtualSize" description:"virtual size of image file"`
	Digest      string                   `db:"digest" json:"digest" description:"image digest"`
	Format      string                   `db:"format" json:"format" description:"image format"`
	OS          JSONColumn[types.OSInfo] `db:"os" json:"os"`
	Snapshot    string                   `db:"snapshot" json:"snapshot" description:"RBD Snapshot for this image, eg: eru/ubuntu-18.04@v1"`
	Description string                   `db:"description" json:"description" description:"image description"`
	CreatedAt   time.Time                `db:"created_at" json:"createdAt" description:"image create time"`
	UpdatedAt   time.Time                `db:"updated_at" json:"updatedAt" description:"image update time"`
	Repo        *Repository              `db:"-" json:"repo"`
}

func GetImageByFullname

func GetImageByFullname(ctx context.Context, fullname string) (*Image, error)

func GetImageByID

func GetImageByID(_ context.Context, id int64) (*Image, error)

func GetPublicImages

func GetPublicImages(_ context.Context) ([]Image, error)

func QueryImagesByRepoIDs

func QueryImagesByRepoIDs(repoIDs []int64, keyword string, pNum, pSize int) (ans []Image, count int, err error)

func QueryImagesByUsername

func QueryImagesByUsername(req types.ImagesByUsernameRequest) (ans []Image, count int, err error)

func QueryPublicImagesByUsername

func QueryPublicImagesByUsername(req types.ImagesByUsernameRequest) (ans []Image, count int, err error)

func (*Image) ColumnNames

func (img *Image) ColumnNames() string

func (*Image) Fullname

func (img *Image) Fullname() string

func (*Image) GetRepo

func (img *Image) GetRepo() (*Repository, error)

func (*Image) NormalizeName

func (img *Image) NormalizeName() string

func (*Image) SliceName

func (img *Image) SliceName() string

func (*Image) TableName

func (*Image) TableName() string

type JSONColumn

type JSONColumn[T any] struct {
	V *T
}

func NewJSONColumn

func NewJSONColumn[T any](v *T) JSONColumn[T]

func (*JSONColumn[T]) Get

func (j *JSONColumn[T]) Get() *T

func (*JSONColumn[T]) Scan

func (j *JSONColumn[T]) Scan(src any) error

func (*JSONColumn[T]) Value

func (j *JSONColumn[T]) Value() (driver.Value, error)

type Labels

type Labels map[string]string

type PrivateToken

type PrivateToken struct {
	ID        int64     `db:"id" json:"id"`
	Name      string    `db:"name" json:"name"`
	UserID    int64     `db:"user_id" json:"userId"`
	Token     string    `db:"token" json:"token"`
	ExpiredAt time.Time `db:"expired_at" json:"expiredAt"`
	CreatedAt time.Time `db:"created_at" json:"createdAt" description:"user create time"`
	LastUsed  time.Time `db:"last_used" json:"lastUsed"`
}

func GetPrivateToken

func GetPrivateToken(token string) (*PrivateToken, error)

func GetPrivateTokenByUserAndName

func GetPrivateTokenByUserAndName(userID int64, name string) (*PrivateToken, error)

func QueryPrivateTokensByUser

func QueryPrivateTokensByUser(ctx context.Context, userID int64) (tokens []*PrivateToken, err error)

func (*PrivateToken) Delete

func (t *PrivateToken) Delete(tx *sqlx.Tx) (err error)

func (*PrivateToken) GetUser

func (t *PrivateToken) GetUser() (*User, error)

func (*PrivateToken) Save

func (t *PrivateToken) Save(tx *sqlx.Tx) (err error)

func (*PrivateToken) UpdateLastUsed

func (t *PrivateToken) UpdateLastUsed() error

type Repository

type Repository struct {
	ID        int64     `db:"id" json:"id"`
	Username  string    `db:"username" json:"username" description:"image's username"`
	Name      string    `db:"name" json:"name" description:"image name"`
	Private   bool      `db:"private" json:"private" description:"image is private"`
	CreatedAt time.Time `db:"created_at" json:"createdAt" description:"image create time"`
	UpdatedAt time.Time `db:"updated_at" json:"updatedAt" description:"image update time"`
	Images    []Image   `db:"-" json:"-"`
}

func QueryPublicRepoList

func QueryPublicRepoList(user string, pNum, pSize int) (ans []Repository, err error)

func QueryRepo

func QueryRepo(ctx context.Context, username, name string) (*Repository, error)

QueryRepo get image info @Param username string false "用户名" @Param name string true "镜像名" @Param tag string true "镜像标签"

func QueryRepoByID

func QueryRepoByID(ctx context.Context, id int64) (*Repository, error)

func QueryRepoList

func QueryRepoList(user string, pNum, pSize int) (ans []Repository, err error)

func (*Repository) ColumnNames

func (repo *Repository) ColumnNames() string

func (*Repository) Delete

func (repo *Repository) Delete(tx *sqlx.Tx) (err error)

func (*Repository) DeleteImage

func (repo *Repository) DeleteImage(tx *sqlx.Tx, tag string) (err error)

func (*Repository) Fullname

func (repo *Repository) Fullname() string

func (*Repository) GetImage

func (repo *Repository) GetImage(ctx context.Context, tag string) (*Image, error)

func (*Repository) GetImages

func (repo *Repository) GetImages() ([]Image, error)

func (*Repository) Save

func (repo *Repository) Save(tx *sqlx.Tx) (err error)

only save image itself, don't save tags

func (*Repository) SaveImage

func (repo *Repository) SaveImage(tx *sqlx.Tx, img *Image) (err error)

func (*Repository) TableName

func (*Repository) TableName() string

type User

type User struct {
	ID        int64     `db:"id" json:"id"`
	Username  string    `db:"username" json:"username" description:"Login user name"`
	Password  string    `db:"password" json:"password" description:"user login password"`
	Nickname  string    `db:"nickname" json:"nickname" description:"user's nickname"`
	Email     string    `db:"email" json:"email" description:"user's email"`
	Admin     bool      `db:"admin" json:"admin" description:"is a admin"`
	CreatedAt time.Time `db:"created_at" json:"createdAt" description:"user create time"`
	UpdatedAt time.Time `db:"updated_at" json:"updatedAt" description:"user update time"`
}

func CheckAndGetUser

func CheckAndGetUser(ctx context.Context, idStr, password string) (*User, error)

func GetUser

func GetUser(ctx context.Context, idStr string) (*User, error)

func GetUserByID

func GetUserByID(ctx context.Context, id int64) (*User, error)

func (*User) ColumnNames

func (user *User) ColumnNames() string

func (*User) TableName

func (*User) TableName() string

func (*User) Update

func (user *User) Update(tx *sqlx.Tx) (err error)

func (*User) UpdatePwd

func (user *User) UpdatePwd(password string) (err error)

Jump to

Keyboard shortcuts

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