feat: 新增 MCP 模块
- mcp_handler.go, mcp.go, mcp_repo.go, mcp_service.go Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
67
server/internal/repository/mcp_repo.go
Normal file
67
server/internal/repository/mcp_repo.go
Normal file
@@ -0,0 +1,67 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"x-agents/server/internal/model"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type MCPRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func NewMCPRepository(db *gorm.DB) *MCPRepository {
|
||||
return &MCPRepository{db: db}
|
||||
}
|
||||
|
||||
func (r *MCPRepository) DB() *gorm.DB {
|
||||
return r.db
|
||||
}
|
||||
|
||||
func (r *MCPRepository) Create(mcp *model.MCP) error {
|
||||
return r.db.Create(mcp).Error
|
||||
}
|
||||
|
||||
func (r *MCPRepository) FindAll() ([]model.MCP, error) {
|
||||
var mcps []model.MCP
|
||||
err := r.db.Order("created_at DESC").Find(&mcps).Error
|
||||
return mcps, err
|
||||
}
|
||||
|
||||
func (r *MCPRepository) FindByID(id string) (*model.MCP, error) {
|
||||
var mcp model.MCP
|
||||
err := r.db.First(&mcp, "id = ?", id).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &mcp, nil
|
||||
}
|
||||
|
||||
func (r *MCPRepository) FindByName(name string) (*model.MCP, error) {
|
||||
var mcp model.MCP
|
||||
err := r.db.First(&mcp, "name = ?", name).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &mcp, nil
|
||||
}
|
||||
|
||||
func (r *MCPRepository) FindByCategory(category string) ([]model.MCP, error) {
|
||||
var mcps []model.MCP
|
||||
err := r.db.Where("category = ?", category).Find(&mcps).Error
|
||||
return mcps, err
|
||||
}
|
||||
|
||||
func (r *MCPRepository) Update(mcp *model.MCP) error {
|
||||
return r.db.Save(mcp).Error
|
||||
}
|
||||
|
||||
func (r *MCPRepository) Delete(id string) error {
|
||||
return r.db.Delete(&model.MCP{}, "id = ?", id).Error
|
||||
}
|
||||
|
||||
func (r *MCPRepository) Count() (int64, error) {
|
||||
var count int64
|
||||
err := r.db.Model(&model.MCP{}).Count(&count).Error
|
||||
return count, err
|
||||
}
|
||||
Reference in New Issue
Block a user