Files
admin e6956aa001 Initial commit: TaskPool React panel
- React frontend with route-level code splitting
- Backend rebranded from Baihu to TaskPool
- DB brand migration script and local compatibility
2026-07-26 08:43:52 +08:00

57 lines
1.4 KiB
Go

package services
import (
"github.com/engigu/taskpool/internal/database"
"github.com/engigu/taskpool/internal/models"
"github.com/engigu/taskpool/internal/utils"
)
type ScriptService struct{}
func NewScriptService() *ScriptService {
return &ScriptService{}
}
func (ss *ScriptService) CreateScript(name, content string, userID string) *models.Script {
script := &models.Script{
ID: utils.GenerateID(),
Name: name,
Content: models.BigText(content),
UserID: userID,
}
database.DB.Create(script)
return script
}
func (ss *ScriptService) GetScriptsByUserID(userID string) []models.Script {
var scripts []models.Script
database.DB.Where("user_id = ?", userID).Find(&scripts)
return scripts
}
func (ss *ScriptService) GetScriptByID(id string) *models.Script {
var script models.Script
res := database.DB.Where("id = ?", id).Limit(1).Find(&script)
if res.Error != nil || res.RowsAffected == 0 {
return nil
}
return &script
}
func (ss *ScriptService) UpdateScript(id string, name, content string) *models.Script {
var script models.Script
res := database.DB.Where("id = ?", id).Limit(1).Find(&script)
if res.Error != nil || res.RowsAffected == 0 {
return nil
}
script.Name = name
script.Content = models.BigText(content)
database.DB.Save(&script)
return &script
}
func (ss *ScriptService) DeleteScript(id string) bool {
result := database.DB.Where("id = ?", id).Delete(&models.Script{})
return result.RowsAffected > 0
}