feat: add sqlite-backed auth and library services

Bootstrap SQLite on server startup with embedded migrations and development seed data. Replace placeholder auth and library responses with database-backed services, bearer sessions, and repository-driven API handlers.
This commit is contained in:
2026-04-02 22:22:38 +03:00
parent debd4d05b9
commit 35abd27473
15 changed files with 808 additions and 64 deletions

View File

@@ -10,12 +10,29 @@ import (
"time"
"github.com/benya/temporserv/internal/config"
"github.com/benya/temporserv/internal/db"
"github.com/benya/temporserv/internal/httpapi"
)
func main() {
cfg := config.Load()
handler := httpapi.NewRouter(cfg)
ctx := context.Background()
database, err := db.Open(ctx, cfg)
if err != nil {
log.Fatalf("database bootstrap failed: %v", err)
}
defer database.Close()
if err := db.Migrate(ctx, database); err != nil {
log.Fatalf("database migrations failed: %v", err)
}
if err := db.Seed(ctx, database, cfg); err != nil {
log.Fatalf("database seed failed: %v", err)
}
handler := httpapi.NewRouter(cfg, database)
server := &http.Server{
Addr: cfg.Address(),
@@ -41,4 +58,3 @@ func main() {
log.Printf("shutdown error: %v", err)
}
}