Security added on delete service and list all node + cleaning some code
This commit is contained in:
@ -40,7 +40,6 @@ func (r *NodeRepository) UpdateServiceStatus(serviceUpdate models.ServiceUpdateR
|
||||
timestamps = append(timestamps, s.Status.Timestamp)
|
||||
}
|
||||
|
||||
// lib/pq supporte le passage de slices Go vers les types array de Postgres
|
||||
_, err := r.DB.Exec(string(query), pq.Array(serviceIds), pq.Array(statuses), pq.Array(timestamps))
|
||||
return err
|
||||
}
|
||||
@ -106,9 +105,8 @@ func (r *NodeRepository) RetriveNodeList() (map[string]models.FullNodeInfo, erro
|
||||
log.Printf("new node")
|
||||
|
||||
var node models.FullNodeInfo
|
||||
var servicesData []byte // On récupère le JSON brut ici
|
||||
var servicesData []byte
|
||||
|
||||
// On scanne les colonnes dans l'ordre du SELECT
|
||||
err := rows.Scan(
|
||||
&node.Id,
|
||||
&node.Name,
|
||||
@ -122,7 +120,6 @@ func (r *NodeRepository) RetriveNodeList() (map[string]models.FullNodeInfo, erro
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// On décode le JSON des services dans la Map de la structure
|
||||
if err := json.Unmarshal(servicesData, &node.Services); err != nil {
|
||||
return nil, fmt.Errorf("error decoding services for node %d: %v", node.Id, err)
|
||||
}
|
||||
@ -146,7 +143,7 @@ func deleteServiceFromNode(node *models.NodeInfo, serviceId int) error {
|
||||
return err
|
||||
}
|
||||
|
||||
req, err := http.NewRequest(http.MethodDelete, apiURL, bytes.NewBuffer(jsonData)) // Le corps (body) est nil pour un DELETE
|
||||
req, err := http.NewRequest(http.MethodDelete, apiURL, bytes.NewBuffer(jsonData))
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
|
||||
if err != nil {
|
||||
@ -154,7 +151,7 @@ func deleteServiceFromNode(node *models.NodeInfo, serviceId int) error {
|
||||
}
|
||||
|
||||
client := http.Client{
|
||||
Timeout: 10 * time.Second, // Définir un timeout
|
||||
Timeout: 10 * time.Second,
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
@ -194,7 +191,6 @@ func (r *NodeRepository) DeleteService(node models.NodeInfo, serviceId int) erro
|
||||
|
||||
err = deleteServiceFromNode(&node, serviceId)
|
||||
if err != nil {
|
||||
// 4. LE NODE A ÉCHOUÉ : On annule tout en DB
|
||||
tx.Rollback()
|
||||
return fmt.Errorf("échec sur le node, annulation du changement en base de données : %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user