regroup backend and frontend in app folder
This commit is contained in:
78
app/backend/handlers/node_handler.go
Normal file
78
app/backend/handlers/node_handler.go
Normal file
@ -0,0 +1,78 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"backend/models"
|
||||
"backend/repositories"
|
||||
"encoding/json"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
type NodeHandler struct {
|
||||
Repo *repositories.NodeRepository
|
||||
}
|
||||
|
||||
var registeredNodes = make(map[string]models.NodeInfo)
|
||||
|
||||
func (h *NodeHandler) HandleRegisterNode(c *gin.Context) {
|
||||
|
||||
var node models.NodeInfo
|
||||
|
||||
if err := c.ShouldBindJSON(&node); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
nodeID, err := h.Repo.RegisterNode(node)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{"id": nodeID})
|
||||
}
|
||||
|
||||
func (h *NodeHandler) HandleRetrieveNodeList(c *gin.Context) {
|
||||
|
||||
log.Println("All nodes retrieved request")
|
||||
|
||||
registeredNodes, err := h.Repo.RetriveNodeList()
|
||||
|
||||
if err != nil {
|
||||
log.Printf("Request error on retrieving all nodes: %v", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Impossible de récupérer la liste des nœuds"})
|
||||
return
|
||||
}
|
||||
|
||||
log.Printf("nb nodes: %v", len(registeredNodes))
|
||||
|
||||
c.JSON(http.StatusOK, registeredNodes)
|
||||
}
|
||||
|
||||
func HandleRetrieveNode(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != "GET" {
|
||||
http.Error(w, "GET requested", http.StatusMethodNotAllowed)
|
||||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
|
||||
params := mux.Vars(r)
|
||||
nodeID := params["id"]
|
||||
|
||||
node, found := registeredNodes[nodeID]
|
||||
if found {
|
||||
json.NewEncoder(w).Encode(node)
|
||||
} else {
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
|
||||
errorResponse := map[string]string{"error": "Node non trouvé", "id": nodeID}
|
||||
json.NewEncoder(w).Encode(errorResponse)
|
||||
}
|
||||
}
|
||||
|
||||
func UpdateNodes() {
|
||||
}
|
||||
Reference in New Issue
Block a user