mirror of
https://github.com/lorsanstand/HomeOps-Hub.git
synced 2026-09-18 15:08:21 +03:00
feat: add register agent in db
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user