2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 03:07:20 +08:00
Files
panel/internal/data/database_server.go
2024-11-09 02:41:47 +08:00

71 lines
1.8 KiB
Go

package data
import (
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/http/request"
)
type databaseServerRepo struct{}
func NewDatabaseServerRepo() biz.DatabaseServerRepo {
return &databaseServerRepo{}
}
func (d databaseServerRepo) Count() (int64, error) {
var count int64
if err := app.Orm.Model(&biz.DatabaseServer{}).Count(&count).Error; err != nil {
return 0, err
}
return count, nil
}
func (d databaseServerRepo) List(page, limit uint) ([]*biz.DatabaseServer, int64, error) {
var databaseServer []*biz.DatabaseServer
var total int64
err := app.Orm.Model(&biz.DatabaseServer{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&databaseServer).Error
return databaseServer, total, err
}
func (d databaseServerRepo) Get(id uint) (*biz.DatabaseServer, error) {
databaseServer := new(biz.DatabaseServer)
if err := app.Orm.Where("id = ?", id).First(databaseServer).Error; err != nil {
return nil, err
}
return databaseServer, nil
}
func (d databaseServerRepo) Create(req *request.DatabaseServerCreate) error {
databaseServer := &biz.DatabaseServer{
Name: req.Name,
Type: biz.DatabaseType(req.Type),
Host: req.Host,
Port: req.Port,
Username: req.Username,
Password: req.Password,
Remark: req.Remark,
}
return app.Orm.Create(databaseServer).Error
}
func (d databaseServerRepo) Update(req *request.DatabaseServerCreate) error {
databaseServer := &biz.DatabaseServer{
Name: req.Name,
Type: biz.DatabaseType(req.Type),
Host: req.Host,
Port: req.Port,
Username: req.Username,
Password: req.Password,
Remark: req.Remark,
}
return app.Orm.Save(databaseServer).Error
}
func (d databaseServerRepo) Delete(id uint) error {
return app.Orm.Delete(&biz.DatabaseServer{}, id).Error
}