mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/1Panel-dev/1Panel.git
synced 2026-09-20 16:13:59 +08:00
* feat: Add Website Template * fix: Don't display the template list * feat: Add Mcp TopList * docs: Remove Mcp TopList * Add more languages --------- Co-authored-by: CityFun <31820853+zhengkunwang223@users.noreply.github.com>
132 lines
4.2 KiB
Go
132 lines
4.2 KiB
Go
package repo
|
|
|
|
import (
|
|
"github.com/1Panel-dev/1Panel/agent/app/model"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type IWebsiteTemplateRepo interface {
|
|
Page(page, size int, opts ...DBOption) (int64, []model.WebsiteTemplate, error)
|
|
GetFirst(opts ...DBOption) (*model.WebsiteTemplate, error)
|
|
List(opts ...DBOption) ([]model.WebsiteTemplate, error)
|
|
Create(template *model.WebsiteTemplate) error
|
|
Save(template *model.WebsiteTemplate) error
|
|
DeleteBy(opts ...DBOption) error
|
|
WithName(name string) DBOption
|
|
WithType(templateType string) DBOption
|
|
}
|
|
|
|
func NewIWebsiteTemplateRepo() IWebsiteTemplateRepo {
|
|
return &WebsiteTemplateRepo{}
|
|
}
|
|
|
|
type WebsiteTemplateRepo struct {
|
|
}
|
|
|
|
func (w *WebsiteTemplateRepo) WithName(name string) DBOption {
|
|
return func(db *gorm.DB) *gorm.DB {
|
|
return db.Where("name like ?", "%"+name+"%")
|
|
}
|
|
}
|
|
|
|
func (w *WebsiteTemplateRepo) WithType(templateType string) DBOption {
|
|
return func(db *gorm.DB) *gorm.DB {
|
|
return db.Where("type = ?", templateType)
|
|
}
|
|
}
|
|
|
|
func (w *WebsiteTemplateRepo) Page(page, size int, opts ...DBOption) (int64, []model.WebsiteTemplate, error) {
|
|
var templates []model.WebsiteTemplate
|
|
db := getDb(opts...).Model(&model.WebsiteTemplate{})
|
|
count := int64(0)
|
|
db = db.Count(&count)
|
|
err := db.Limit(size).Offset(size * (page - 1)).Find(&templates).Error
|
|
return count, templates, err
|
|
}
|
|
|
|
func (w *WebsiteTemplateRepo) GetFirst(opts ...DBOption) (*model.WebsiteTemplate, error) {
|
|
var template model.WebsiteTemplate
|
|
db := getDb(opts...).Model(&model.WebsiteTemplate{})
|
|
if err := db.First(&template).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &template, nil
|
|
}
|
|
|
|
func (w *WebsiteTemplateRepo) List(opts ...DBOption) ([]model.WebsiteTemplate, error) {
|
|
var templates []model.WebsiteTemplate
|
|
err := getDb(opts...).Model(&model.WebsiteTemplate{}).Find(&templates).Error
|
|
return templates, err
|
|
}
|
|
|
|
func (w *WebsiteTemplateRepo) Create(template *model.WebsiteTemplate) error {
|
|
return getDb().Create(template).Error
|
|
}
|
|
|
|
func (w *WebsiteTemplateRepo) Save(template *model.WebsiteTemplate) error {
|
|
return getDb().Save(template).Error
|
|
}
|
|
|
|
func (w *WebsiteTemplateRepo) DeleteBy(opts ...DBOption) error {
|
|
return getDb(opts...).Delete(&model.WebsiteTemplate{}).Error
|
|
}
|
|
|
|
type IWebsiteTemplateOutputRepo interface {
|
|
Page(page, size int, opts ...DBOption) (int64, []model.WebsiteTemplateOutput, error)
|
|
GetFirst(opts ...DBOption) (*model.WebsiteTemplateOutput, error)
|
|
List(opts ...DBOption) ([]model.WebsiteTemplateOutput, error)
|
|
Create(output *model.WebsiteTemplateOutput) error
|
|
Save(output *model.WebsiteTemplateOutput) error
|
|
DeleteBy(opts ...DBOption) error
|
|
WithByTemplateID(templateID uint) DBOption
|
|
}
|
|
|
|
func NewIWebsiteTemplateOutputRepo() IWebsiteTemplateOutputRepo {
|
|
return &WebsiteTemplateOutputRepo{}
|
|
}
|
|
|
|
type WebsiteTemplateOutputRepo struct {
|
|
}
|
|
|
|
func (w *WebsiteTemplateOutputRepo) WithByTemplateID(templateID uint) DBOption {
|
|
return func(db *gorm.DB) *gorm.DB {
|
|
return db.Where("template_id = ?", templateID)
|
|
}
|
|
}
|
|
|
|
func (w *WebsiteTemplateOutputRepo) Page(page, size int, opts ...DBOption) (int64, []model.WebsiteTemplateOutput, error) {
|
|
var outputs []model.WebsiteTemplateOutput
|
|
db := getDb(opts...).Model(&model.WebsiteTemplateOutput{})
|
|
count := int64(0)
|
|
db = db.Count(&count)
|
|
err := db.Limit(size).Offset(size * (page - 1)).Find(&outputs).Error
|
|
return count, outputs, err
|
|
}
|
|
|
|
func (w *WebsiteTemplateOutputRepo) GetFirst(opts ...DBOption) (*model.WebsiteTemplateOutput, error) {
|
|
var output model.WebsiteTemplateOutput
|
|
db := getDb(opts...).Model(&model.WebsiteTemplateOutput{})
|
|
if err := db.First(&output).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &output, nil
|
|
}
|
|
|
|
func (w *WebsiteTemplateOutputRepo) List(opts ...DBOption) ([]model.WebsiteTemplateOutput, error) {
|
|
var outputs []model.WebsiteTemplateOutput
|
|
err := getDb(opts...).Model(&model.WebsiteTemplateOutput{}).Find(&outputs).Error
|
|
return outputs, err
|
|
}
|
|
|
|
func (w *WebsiteTemplateOutputRepo) Create(output *model.WebsiteTemplateOutput) error {
|
|
return getDb().Create(output).Error
|
|
}
|
|
|
|
func (w *WebsiteTemplateOutputRepo) Save(output *model.WebsiteTemplateOutput) error {
|
|
return getDb().Save(output).Error
|
|
}
|
|
|
|
func (w *WebsiteTemplateOutputRepo) DeleteBy(opts ...DBOption) error {
|
|
return getDb(opts...).Delete(&model.WebsiteTemplateOutput{}).Error
|
|
}
|