diff --git a/backend/db/postgres.go b/backend/db/postgres.go index e2fb816..bbeb76a 100644 --- a/backend/db/postgres.go +++ b/backend/db/postgres.go @@ -1098,19 +1098,19 @@ func (d *Database) UnassignAgentCustomer(agentID string) error { return err } -func (d *Database) GetAgentsByCustomer(customerID int) ([]models.Agent, 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) +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, agent_version FROM agents WHERE customer_id = $1 ORDER BY name", customerID) if err != nil { return nil, err } defer rows.Close() - var agents []models.Agent + var agents []models.AgentResponse for rows.Next() { var a models.Agent var lastHB sql.NullTime 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 } if lastHB.Valid { @@ -1120,10 +1120,13 @@ func (d *Database) GetAgentsByCustomer(customerID int) ([]models.Agent, error) { cid := int(custID.Int64) a.CustomerID = &cid } - agents = append(agents, a) + agents = append(agents, models.AgentResponse{ + Agent: a, + Status: models.CalculateAgentStatus(a.LastHeartbeat), + }) } if agents == nil { - agents = []models.Agent{} + agents = []models.AgentResponse{} } return agents, rows.Err() }