2026-03-07 06:20:39 +00:00
|
|
|
package handlers
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"log"
|
|
|
|
|
|
2026-03-08 06:06:38 +00:00
|
|
|
"github.com/ghostersk/gowebmail/config"
|
|
|
|
|
"github.com/ghostersk/gowebmail/internal/db"
|
|
|
|
|
"github.com/ghostersk/gowebmail/internal/syncer"
|
2026-03-07 06:20:39 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Handlers struct {
|
|
|
|
|
Auth *AuthHandler
|
|
|
|
|
App *AppHandler
|
|
|
|
|
API *APIHandler
|
|
|
|
|
Admin *AdminHandler
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func New(database *db.DB, cfg *config.Config, sc *syncer.Scheduler) *Handlers {
|
|
|
|
|
renderer, err := NewRenderer()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("failed to load templates: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &Handlers{
|
|
|
|
|
Auth: &AuthHandler{db: database, cfg: cfg, renderer: renderer},
|
|
|
|
|
App: &AppHandler{db: database, cfg: cfg, renderer: renderer},
|
|
|
|
|
API: &APIHandler{db: database, cfg: cfg, syncer: sc},
|
|
|
|
|
Admin: &AdminHandler{db: database, cfg: cfg, renderer: renderer},
|
|
|
|
|
}
|
|
|
|
|
}
|