mirror of
https://github.com/netbirdio/management-refactor.git
synced 2026-05-22 17:12:59 -07:00
extract repo
This commit is contained in:
@@ -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}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user