Files
agent/backend/cmd/api/main.go

51 lines
1.5 KiB
Go
Raw Normal View History

2026-07-18 15:50:04 +08:00
package main
import (
"log"
"senlinai-agent/backend/internal/config"
"senlinai-agent/backend/internal/httpx"
"senlinai-agent/backend/internal/logic/auth"
"senlinai-agent/backend/internal/logic/files"
"senlinai-agent/backend/internal/logic/inbox"
"senlinai-agent/backend/internal/logic/projects"
"senlinai-agent/backend/internal/logic/tasks"
"senlinai-agent/backend/internal/models"
2026-07-18 15:50:04 +08:00
)
func main() {
cfg := config.Load()
err := models.New(cfg.DSN)
2026-07-18 17:42:50 +08:00
if err != nil {
log.Fatal(err)
}
authService := auth.NewService(cfg.AuthSecret)
projectService := projects.NewService()
fileService := files.NewService(cfg.StorageDir, models.DBService)
taskService := tasks.NewService(models.DBService)
projectHandler := projects.NewHandler(projectService)
tagHandler := projects.NewTagHandler(projectService)
cronHandler := projects.NewCronHandler(projectService)
taskHandler := tasks.NewHandler(taskService)
fileHandler := files.NewHandler(fileService, cfg.MaxUploadBytes)
inboxHandler := inbox.NewHandler(inbox.NewService(inbox.StaticAnalyzer{}))
authHandler := auth.NewHandler(authService)
// search 与 AI 当前只有 service尚无 HTTP registrar后续功能任务应在实现真实契约后从此处注入不能注册伪端点。
appRouter := httpx.NewProtectedRouter(
cfg,
authService.VerifySession,
authHandler,
projectHandler,
tagHandler,
cronHandler,
taskHandler,
fileHandler,
inboxHandler,
)
if err := appRouter.Run(":" + cfg.Port); err != nil {
2026-07-18 15:50:04 +08:00
log.Fatal(err)
}
}