1Panel/core/app/repo/app_launcher.go
2024-11-30 19:42:41 +08:00

50 lines
1.2 KiB
Go

package repo
import (
"github.com/1Panel-dev/1Panel/core/app/model"
"github.com/1Panel-dev/1Panel/core/global"
)
type LauncherRepo struct{}
type ILauncherRepo interface {
Get(opts ...global.DBOption) (model.AppLauncher, error)
List(opts ...global.DBOption) ([]model.AppLauncher, error)
Create(launcher *model.AppLauncher) error
Delete(opts ...global.DBOption) error
}
func NewILauncherRepo() ILauncherRepo {
return &LauncherRepo{}
}
func (u *LauncherRepo) Get(opts ...global.DBOption) (model.AppLauncher, error) {
var launcher model.AppLauncher
db := global.DB
for _, opt := range opts {
db = opt(db)
}
err := db.First(&launcher).Error
return launcher, err
}
func (u *LauncherRepo) List(opts ...global.DBOption) ([]model.AppLauncher, error) {
var ops []model.AppLauncher
db := global.DB.Model(&model.AppLauncher{})
for _, opt := range opts {
db = opt(db)
}
err := db.Find(&ops).Error
return ops, err
}
func (u *LauncherRepo) Create(launcher *model.AppLauncher) error {
return global.DB.Create(launcher).Error
}
func (u *LauncherRepo) Delete(opts ...global.DBOption) error {
db := global.DB
for _, opt := range opts {
db = opt(db)
}
return db.Delete(&model.AppLauncher{}).Error
}