- Update module path from github.com/imc/backend to git.workaround.org/chaas/imc/backend - Update git remote to use git.workaround.org
47 lines
881 B
Go
47 lines
881 B
Go
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) {
|
|
domains, err := h.db.GetAllDomains()
|
|
if err != nil {
|
|
domains = []db.DomainStats{}
|
|
}
|
|
|
|
users, err := h.db.GetAllMailUsers()
|
|
if err != nil {
|
|
users = []db.User{}
|
|
}
|
|
|
|
aliases, err := h.db.GetAllAliases()
|
|
if err != nil {
|
|
aliases = []db.AliasWithDomain{}
|
|
}
|
|
|
|
stats := Stats{
|
|
TotalDomains: len(domains),
|
|
TotalUsers: len(users),
|
|
TotalAliases: len(aliases),
|
|
QueueSize: 0,
|
|
}
|
|
|
|
Success(c, stats)
|
|
}
|