package handlers import ( "git.workaround.org/chaas/imc/backend/internal/db" "github.com/gin-gonic/gin" ) type StatsHandler struct { db *db.DB } func NewStatsHandler(database *db.DB) *StatsHandler { return &StatsHandler{db: database} } type Stats struct { TotalDomains int `json:"totalDomains"` TotalUsers int `json:"totalUsers"` TotalAliases int `json:"totalAliases"` QueueSize int `json:"queueSize"` } func (h *StatsHandler) Get(c *gin.Context) { ctx := c.Request.Context() domains, err := h.db.GetAllDomains(ctx) if err != nil { domains = nil } users, err := h.db.GetAllMailUsers(ctx) if err != nil { users = nil } aliases, err := h.db.GetAllAliases(ctx) if err != nil { aliases = nil } stats := Stats{ TotalDomains: len(domains), TotalUsers: len(users), TotalAliases: len(aliases), QueueSize: 0, } Success(c, stats) }