Connect React workspace to backend data

This commit is contained in:
2026-07-20 13:02:26 +08:00
parent 215268e836
commit 875b326ddc
28 changed files with 1017 additions and 257 deletions

View File

@@ -22,7 +22,8 @@ func main() {
authService := auth.NewService(cfg.AuthSecret)
projectHandler := projects.NewHandler(projects.NewService())
inboxHandler := inbox.NewHandler(inbox.NewService(inbox.StaticAnalyzer{}))
appRouter := httpx.NewProtectedRouter(cfg, authService.VerifySession, projectHandler, inboxHandler)
authHandler := auth.NewHandler(authService)
appRouter := httpx.NewProtectedRouter(cfg, authService.VerifySession, authHandler, projectHandler, inboxHandler)
if err := appRouter.Run(":" + cfg.Port); err != nil {
log.Fatal(err)
}

37
backend/cmd/seed/main.go Normal file
View File

@@ -0,0 +1,37 @@
package main
import (
"fmt"
"os"
"senlinai-agent/backend/internal/config"
"senlinai-agent/backend/internal/models"
"senlinai-agent/backend/internal/seed"
)
func main() {
cfg := config.Load()
if dsn := envOrDefault("DATABASE_DSN", envOrDefault("DATABASE_URL", "")); dsn != "" {
cfg.DSN = dsn
}
if err := models.New(cfg.DSN); err != nil {
panic(err)
}
result, err := seed.Demo(models.DBService, seed.DemoOptions{
Email: envOrDefault("SENLIN_SEED_EMAIL", "demo@senlin.ai"),
DisplayName: envOrDefault("SENLIN_SEED_NAME", "演示用户"),
Password: envOrDefault("SENLIN_SEED_PASSWORD", "password123"),
})
if err != nil {
panic(err)
}
fmt.Printf("seeded %s with %d projects\n", result.User.Email, len(result.Projects))
}
func envOrDefault(key string, fallback string) string {
value := os.Getenv(key)
if value == "" {
return fallback
}
return value
}