Files
bssapp/svc/routes/admin_piyasa.go
2026-02-11 17:46:22 +03:00

62 lines
1.5 KiB
Go

package routes
import (
"log"
"net/http"
"strconv"
"bssapp-backend/auth"
"bssapp-backend/internal/authz"
"bssapp-backend/middlewares"
"github.com/gorilla/mux"
)
// =====================================================
// 🔐 ADMIN — PIYASA CACHE SYNC
// =====================================================
// POST /api/admin/users/{id}/piyasa-sync
func AdminSyncUserPiyasaHandler(w http.ResponseWriter, r *http.Request) {
// --------------------------------------------------
// 🔐 AUTH
// --------------------------------------------------
claims, ok := auth.GetClaimsFromContext(r.Context())
if !ok || claims == nil {
http.Error(w, "unauthorized", 401)
return
}
// --------------------------------------------------
// 🆔 USER ID PARAM
// --------------------------------------------------
vars := mux.Vars(r)
idStr := vars["id"]
targetID, err := strconv.ParseInt(idStr, 10, 64)
if err != nil {
http.Error(w, "invalid user id", http.StatusBadRequest)
return
}
// --------------------------------------------------
// 🧹 CACHE CLEAR
// --------------------------------------------------
authz.ClearPiyasaCache(int(targetID))
middlewares.ClearAuthzScopeCacheForUser(targetID)
log.Printf(
"🔄 ADMIN PIYASA SYNC | admin=%d target=%d",
claims.ID,
targetID,
)
// --------------------------------------------------
// ✅ OK
// --------------------------------------------------
w.Header().Set("Content-Type", "application/json")
w.Write([]byte(`{"status":"ok"}`))
}