Files
kenaito-media-picker/internal/api/scan_controller.go
T
odboy 14056ba7b9 feat(scan): 添加自定义扫描目录选择功能
- 在扫描页面添加目录输入框和选择按钮
- 实现文件系统浏览器,支持Windows盘符和目录浏览
- 添加扫描目录参数传递到后端服务
- 显示当前扫描目录路径信息
- 修复前端空数组访问错误
- 更新文档说明扫描功能变化
2025-04-24 21:05:00 +08:00

44 lines
1.0 KiB
Go

package api
import (
"net/http"
"github.com/gin-gonic/gin"
"kenaito-media-picker/internal/service"
)
// ScanController 扫描整理接口
type ScanController struct {
service *service.ScanService
}
// NewScanController 创建扫描控制器
func NewScanController(svc *service.ScanService) *ScanController {
return &ScanController{service: svc}
}
// scanStartReq 扫描启动请求;dir 为空时使用服务当前运行目录
type scanStartReq struct {
Dir string `json:"dir"`
}
// Start POST /api/scan/start 触发一次扫描整理
func (c *ScanController) Start(ctx *gin.Context) {
var req scanStartReq
if err := ctx.ShouldBindJSON(&req); err != nil {
Error(ctx, http.StatusBadRequest, "请求参数错误:"+err.Error())
return
}
if err := c.service.Start(req.Dir); err != nil {
Error(ctx, http.StatusBadRequest, err.Error())
return
}
Success(ctx, c.service.Status())
}
// Status GET /api/scan/status 查询扫描状态与日志
func (c *ScanController) Status(ctx *gin.Context) {
Success(ctx, c.service.Status())
}