add example setup for management refactor

This commit is contained in:
Pascal Fischer
2024-03-13 23:07:00 +01:00
parent 9d213e0b54
commit f31b06fc92
19 changed files with 1560 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
package peers
import (
"github.com/netbirdio/netbird/management/refactor/settings"
)
type Manager interface {
GetPeerByPubKey(pubKey string) (Peer, error)
GetPeerByID(id string) (Peer, error)
GetNetworkPeerByID(id string) (Peer, error)
GetNetworkPeersInAccount(id string) ([]Peer, error)
}
type DefaultManager struct {
repository repository
settingsManager settings.Manager
}
func NewDefaultManager(repository repository, settingsManager settings.Manager) *DefaultManager {
return &DefaultManager{
repository: repository,
settingsManager: settingsManager,
}
}
func (dm *DefaultManager) GetNetworkPeerByID(id string) (Peer, error) {
return dm.repository.FindPeerByID(id)
}
func (dm *DefaultManager) GetNetworkPeersInAccount(id string) ([]Peer, error) {
defaultPeers, err := dm.repository.FindAllPeersInAccount(id)
if err != nil {
return nil, err
}
peers := make([]Peer, len(defaultPeers))
for _, dp := range defaultPeers {
peers = append(peers, dp)
}
return peers, nil
}
func (dm *DefaultManager) GetPeerByPubKey(pubKey string) (Peer, error) {
return dm.repository.FindPeerByPubKey(pubKey)
}
func (dm *DefaultManager) GetPeerByID(id string) (Peer, error) {
return dm.repository.FindPeerByID(id)
}