extract repo

This commit is contained in:
Pascal Fischer
2025-06-11 23:24:35 +02:00
parent e662c5dd54
commit f612dba3d3
43 changed files with 49 additions and 4021 deletions
-4
View File
@@ -4,7 +4,6 @@ import (
"context"
"github.com/netbirdio/management-refactor/internals/shared/db"
"github.com/netbirdio/management-refactor/internals/shared/hook"
)
type Manager interface {
@@ -13,7 +12,4 @@ type Manager interface {
CreateNetwork(ctx context.Context, tx db.Transaction, userID string, network *Network) (*Network, error)
UpdateNetwork(ctx context.Context, tx db.Transaction, userID string, network *Network) (*Network, error)
DeleteNetwork(ctx context.Context, tx db.Transaction, accountID, userID, networkID string) error
// events
OnNetworkDelete() *hook.Hook[*NetworkEvent]
}
@@ -13,13 +13,11 @@ import (
type managerImpl struct {
repo Repository
onNetworkDelete *hook.Hook[*networks.NetworkEvent]
}
func NewManager(store *db.Store) networks.Manager {
func NewManager(repo Repository) networks.Manager {
return &managerImpl{
repo: newRepository(store),
repo: repo,
}
}
@@ -18,7 +18,7 @@ type repository struct {
store *db.Store
}
func newRepository(s *db.Store) Repository {
func NewRepository(s *db.Store) Repository {
return &repository{store: s}
}
@@ -1,15 +0,0 @@
package networks
import (
"context"
"github.com/netbirdio/management-refactor/internals/shared/db"
"github.com/netbirdio/management-refactor/internals/shared/hook"
)
type NetworkEvent struct {
hook.Event
Context context.Context
Tx db.Transaction
Network *Network
}
@@ -16,24 +16,11 @@ type managerImpl struct {
networkManager networks.Manager
}
func NewManager(store *db.Store, router *mux.Router, networkManager networks.Manager) resources.Manager {
repo := newRepository(store)
m := &managerImpl{
func NewManager(repo Repository, router *mux.Router, networkManager networks.Manager) resources.Manager {
return &managerImpl{
repo: repo,
networkManager: networkManager,
}
networkManager.OnNetworkDelete().BindFunc(func(e *networks.NetworkEvent) error {
if err := m.DeleteResourcesInNetwork(e.Context, e.Tx, e.Network); err != nil {
return fmt.Errorf("failed to delete resources in network: %w", err)
}
return e.Next()
})
// api := newHandler(m, permissionsManager)
// api.RegisterEndpoints(router)
return m
}
func (m *managerImpl) GetNetworkResourcesByNetID(ctx context.Context, tx db.Transaction, lockingStrength db.LockingStrength, network *networks.Network) ([]*resources.NetworkResource, error) {
@@ -15,7 +15,7 @@ type repository struct {
store *db.Store
}
func newRepository(s *db.Store) Repository {
func NewRepository(s *db.Store) Repository {
return &repository{store: s}
}
+2
View File
@@ -13,4 +13,6 @@ type Manager interface {
GetPeers(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID string) ([]*Peer, error)
GetFilteredPeers(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID, nameFilter, ipFilter string) ([]*Peer, error)
UpdatePeer(ctx context.Context, tx db.Transaction, peer *Peer) error
GetAllEphemeralPeers(ctx context.Context, tx db.Transaction, strength db.LockingStrength) ([]*Peer, error)
DeletePeer(ctx context.Context, tx db.Transaction, accountID, peerID string) error
}
+12 -2
View File
@@ -20,8 +20,8 @@ type Manager struct {
networkMapController network_map.Controller
}
func NewManager(store *db.Store) *Manager {
return &Manager{repo: newRepository(store)}
func NewManager(repo Repository) *Manager {
return &Manager{repo: repo}
}
func (m *Manager) SetNetworkMapController(networkMapController network_map.Controller) {
@@ -51,3 +51,13 @@ func (m *Manager) UpdatePeer(ctx context.Context, tx db.Transaction, peer *peers
return nil
}
func (m *Manager) GetAllEphemeralPeers(ctx context.Context, tx db.Transaction, strength db.LockingStrength) ([]*peers.Peer, error) {
// TODO implement me
panic("implement me")
}
func (m *Manager) DeletePeer(ctx context.Context, tx db.Transaction, accountID, peerID string) error {
// TODO implement me
panic("implement me")
}
@@ -17,7 +17,7 @@ type repository struct {
store *db.Store
}
func newRepository(s *db.Store) Repository {
func NewRepository(s *db.Store) Repository {
return &repository{store: s}
}
+2 -4
View File
@@ -14,10 +14,8 @@ type Manager struct {
repo Repository
}
func NewManager(store *db.Store) *Manager {
repo := newRepository(store)
m := &Manager{repo: repo}
return m
func NewManager(repo Repository) *Manager {
return &Manager{repo: repo}
}
func (m *Manager) GetAllUsers(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID string) ([]users.User, error) {
@@ -16,7 +16,7 @@ type repository struct {
store *db.Store
}
func newRepository(s *db.Store) Repository {
func NewRepository(s *db.Store) Repository {
err := s.AutoMigrate(users.User{})
if err != nil {
log.Fatalf("Failed to auto migrate: %v", err)