Files
Kazier/backend/internal/handler/handler.go
T
2026-07-29 22:16:47 +02:00

50 lines
1.2 KiB
Go

package handler
import (
"database/sql"
"github.com/vaultdrop/backend/internal/auth"
"github.com/vaultdrop/backend/internal/service"
)
type Handler struct {
Resource *ResourceHandler
OCR *OCRHandler
Health *HealthHandler
Auth *auth.AuthHandler
Share *ShareHandler
Device *DeviceHandler
Sync *SyncHandler
Events *EventHandler
}
func New(
database *sql.DB,
resourceSvc *service.ResourceService,
ocrSvc *service.OCRService,
urlSvc *service.URLService,
authHandler *auth.AuthHandler,
conversionSvc *service.ConversionService,
rebacSvc *service.RebacService,
placementSvc *service.PlacementService,
syncSvc *service.SyncService,
eventBroker *service.EventBroker,
) *Handler {
return &Handler{
Resource: &ResourceHandler{
resources: resourceSvc,
urls: urlSvc,
ocr: ocrSvc,
conversion: conversionSvc,
broker: eventBroker,
},
OCR: &OCRHandler{ocr: ocrSvc, resources: resourceSvc},
Health: &HealthHandler{db: database, ocr: ocrSvc},
Auth: authHandler,
Share: &ShareHandler{rebac: rebacSvc},
Device: &DeviceHandler{placement: placementSvc},
Sync: &SyncHandler{sync: syncSvc},
Events: NewEventHandler(eventBroker),
}
}