chore: merge backend repo history into monorepo at backend/
git-subtree-dir: backend git-subtree-mainline:dc11190527git-subtree-split:acae976622
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
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))
|
||||
}
|
||||
Reference in New Issue
Block a user