feat: add register agent in db

This commit is contained in:
lorsan
2026-04-16 13:38:35 +03:00
parent 65d8f883dc
commit 52766cf7e8
16 changed files with 271 additions and 29 deletions
+29 -5
View File
@@ -1,20 +1,29 @@
package hub_service
import (
"context"
"github.com/lorsanstand/HomeOps-Hub/internal/domain"
"github.com/lorsanstand/HomeOps-Hub/internal/hub/store"
"github.com/lorsanstand/HomeOps-Hub/internal/hub/utils/hasher"
"github.com/rs/zerolog"
)
type Store interface {
NewAgent(ctx context.Context, agent store.Agent) error
}
type HubService struct {
log zerolog.Logger
store Store
log zerolog.Logger
}
func NewHubService(logger zerolog.Logger) *HubService {
return &HubService{log: logger}
func NewHubService(store Store, logger zerolog.Logger) *HubService {
return &HubService{log: logger, store: store}
}
func (h *HubService) RegisterAgent(data domain.RegisterAgentRequest) domain.RegisterAgentResponse {
func (h *HubService) RegisterAgent(ctx context.Context, data domain.RegisterAgentRequest) (domain.RegisterAgentResponse, error) {
h.log.Debug().Msg("registered new agent")
AgentID := data.AgentId
if data.AgentId == "" {
var err error
@@ -25,5 +34,20 @@ func (h *HubService) RegisterAgent(data domain.RegisterAgentRequest) domain.Regi
}
}
return domain.RegisterAgentResponse{AgentID: AgentID, Heartbeat: 5}
agentStore := store.Agent{
AgentID: AgentID,
AgentName: data.AgentName,
Architecture: data.Host.Arch,
System: data.Host.System,
Hostname: data.Host.Hostname,
Version: data.AgentVersion,
Capabilities: data.Capabilities,
}
if err := h.store.NewAgent(ctx, agentStore); err != nil {
h.log.Warn().Err(err).Msg("failed add new agent in db")
return domain.RegisterAgentResponse{}, err
}
return domain.RegisterAgentResponse{AgentID: AgentID, Heartbeat: 5}, nil
}