package handlers import ( "github.com/gin-gonic/gin" "git.netcell-it.de/projekte/edgeguard-native/internal/cluster" "git.netcell-it.de/projekte/edgeguard-native/internal/handlers/response" ) // ClusterHandler exposes cluster-state endpoints. v1 is read-only: // the UI shows the list of registered nodes but cluster-join + write // operations land in Phase 3.1. type ClusterHandler struct { Store *cluster.Store LocalID string } func NewClusterHandler(store *cluster.Store, localID string) *ClusterHandler { return &ClusterHandler{Store: store, LocalID: localID} } func (h *ClusterHandler) Register(rg *gin.RouterGroup) { g := rg.Group("/cluster") g.GET("/nodes", h.ListNodes) } func (h *ClusterHandler) ListNodes(c *gin.Context) { nodes, err := h.Store.List(c.Request.Context()) if err != nil { response.Internal(c, err) return } response.OK(c, gin.H{ "nodes": nodes, "local_id": h.LocalID, }) }