Files
mobiniqow 35f5084005 chore: merge backend repo history into monorepo at backend/
git-subtree-dir: backend
git-subtree-mainline: dc11190527
git-subtree-split: acae976622
2026-09-27 10:30:16 +03:30

46 lines
1.2 KiB
Go

package handler
import (
"net/http"
"strconv"
"github.com/gin-gonic/gin"
"dating-app/internal/monitoring"
"dating-app/internal/utils"
)
type MonitoringHandler struct {
store *monitoring.Store
}
func NewMonitoringHandler(store *monitoring.Store) *MonitoringHandler {
return &MonitoringHandler{store: store}
}
// Summary GET /admin/monitoring/summary
func (h *MonitoringHandler) Summary(c *gin.Context) {
utils.Success(c, http.StatusOK, "", h.store.Summary())
}
// RecentRequests GET /admin/monitoring/requests?limit=100&user_id=42
// اگه user_id داده بشه، فقط فعالیت اخیر همون کاربر برمی‌گرده (برای صفحه‌ی
// جزئیات کاربر توی پنل ادمین)؛ وگرنه آخرین درخواست‌های کل سرور.
func (h *MonitoringHandler) RecentRequests(c *gin.Context) {
limit := 100
if raw := c.Query("limit"); raw != "" {
if n, err := strconv.Atoi(raw); err == nil && n > 0 && n <= 1000 {
limit = n
}
}
if raw := c.Query("user_id"); raw != "" {
if uid, err := strconv.ParseUint(raw, 10, 64); err == nil {
utils.Success(c, http.StatusOK, "", h.store.RecentByUser(uint(uid), limit))
return
}
}
utils.Success(c, http.StatusOK, "", h.store.Recent(limit))
}