Files
Kazier/backend/cmd/server/main.go
T
2026-07-12 22:15:23 +02:00

46 lines
1.0 KiB
Go

package main
import (
"log"
"github.com/gin-gonic/gin"
"github.com/vaultdrop/backend/internal/config"
"github.com/vaultdrop/backend/internal/db"
"github.com/vaultdrop/backend/internal/handler"
"github.com/vaultdrop/backend/internal/service"
)
func main() {
cfg := config.Load()
database, err := db.Connect()
if err != nil {
log.Fatalf("Failed to connect to database: %v", err)
}
defer database.Close()
migrationsPath := "file://internal/db/migrations"
if err := db.RunMigrations(migrationsPath); err != nil {
log.Fatalf("Failed to run migrations: %v", err)
}
queries := db.New(database)
fileSvc := service.NewFileService(queries, cfg)
ocrSvc := service.NewOCRService(cfg, fileSvc)
urlSvc := service.NewURLService(cfg.HMACSecret, cfg.ServerHost)
ocrSvc.Start()
defer ocrSvc.Stop()
h := handler.New(fileSvc, ocrSvc, urlSvc)
r := gin.Default()
handler.SetupRoutes(r, h)
log.Printf("Server starting on port %s", cfg.Port)
if err := r.Run(":" + cfg.Port); err != nil {
log.Fatal(err)
}
}