fix: getCustomerAgents liefert status + agent_version

This commit is contained in:
cynfo3000 2026-03-10 00:21:58 +01:00
parent 4a79305eee
commit 20a976767b

View File

@ -1098,19 +1098,19 @@ func (d *Database) UnassignAgentCustomer(agentID string) error {
return err return err
} }
func (d *Database) GetAgentsByCustomer(customerID int) ([]models.Agent, error) { func (d *Database) GetAgentsByCustomer(customerID int) ([]models.AgentResponse, error) {
rows, err := d.db.Query("SELECT id, name, hostname, ip, opnsense_version, registered_at, last_heartbeat, customer_id FROM agents WHERE customer_id = $1 ORDER BY name", customerID) rows, err := d.db.Query("SELECT id, name, hostname, ip, opnsense_version, registered_at, last_heartbeat, customer_id, agent_version FROM agents WHERE customer_id = $1 ORDER BY name", customerID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer rows.Close() defer rows.Close()
var agents []models.Agent var agents []models.AgentResponse
for rows.Next() { for rows.Next() {
var a models.Agent var a models.Agent
var lastHB sql.NullTime var lastHB sql.NullTime
var custID sql.NullInt64 var custID sql.NullInt64
if err := rows.Scan(&a.ID, &a.Name, &a.Hostname, &a.IP, &a.OPNsenseVersion, &a.RegisteredAt, &lastHB, &custID); err != nil { if err := rows.Scan(&a.ID, &a.Name, &a.Hostname, &a.IP, &a.OPNsenseVersion, &a.RegisteredAt, &lastHB, &custID, &a.AgentVersion); err != nil {
return nil, err return nil, err
} }
if lastHB.Valid { if lastHB.Valid {
@ -1120,10 +1120,13 @@ func (d *Database) GetAgentsByCustomer(customerID int) ([]models.Agent, error) {
cid := int(custID.Int64) cid := int(custID.Int64)
a.CustomerID = &cid a.CustomerID = &cid
} }
agents = append(agents, a) agents = append(agents, models.AgentResponse{
Agent: a,
Status: models.CalculateAgentStatus(a.LastHeartbeat),
})
} }
if agents == nil { if agents == nil {
agents = []models.Agent{} agents = []models.AgentResponse{}
} }
return agents, rows.Err() return agents, rows.Err()
} }