package handlers import ( "net/http" "github.com/gin-gonic/gin" "knowledge-graph-backend/services" ) type NodeHandler struct { dataService *services.DataService } func NewNodeHandler(dataService *services.DataService) *NodeHandler { return &NodeHandler{ dataService: dataService, } } func (h *NodeHandler) GetNodeByID(c *gin.Context) { nodeID := c.Param("id") if nodeID == "" { c.JSON(http.StatusBadRequest, gin.H{ "error": "Bad Request", "message": "Node ID is required", }) return } node, found := h.dataService.GetNodeByID(nodeID) if !found { c.JSON(http.StatusNotFound, gin.H{ "error": "Not Found", "message": "Node with ID '" + nodeID + "' not found", }) return } c.JSON(http.StatusOK, node) } func (h *NodeHandler) GetNeighbors(c *gin.Context) { nodeID := c.Param("id") if nodeID == "" { c.JSON(http.StatusBadRequest, gin.H{ "error": "Bad Request", "message": "Node ID is required", }) return } neighbors, found := h.dataService.GetNeighbors(nodeID) if !found { c.JSON(http.StatusNotFound, gin.H{ "error": "Not Found", "message": "Node with ID '" + nodeID + "' not found", }) return } c.JSON(http.StatusOK, neighbors) } func (h *NodeHandler) AddCustomHeaders(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "message": "With CORS headers", "origin": c.Request.Header.Get("Origin"), }) }