Files
2025-06-12 14:49:48 +02:00

57 lines
1.5 KiB
Go

package manager
import (
"context"
"fmt"
"github.com/gorilla/mux"
"github.com/netbirdio/management-refactor/internals/modules/networks"
"github.com/netbirdio/management-refactor/internals/modules/networks/resources"
"github.com/netbirdio/management-refactor/internals/shared/db"
)
type managerImpl struct {
repo Repository
networkManager networks.Manager
}
func NewManager(repo Repository, router *mux.Router, networkManager networks.Manager) resources.Manager {
return &managerImpl{
repo: repo,
networkManager: networkManager,
}
}
func (m *managerImpl) GetNetworkResourcesByNetID(ctx context.Context, tx db.Transaction, lockingStrength db.LockingStrength, id string) ([]*resources.NetworkResource, error) {
return m.repo.GetResourcesByNetworkID(tx, lockingStrength, id)
}
func (m *managerImpl) DeleteResourcesInNetwork(ctx context.Context, tx db.Transaction, accountID string, userID string, id string) error {
resources, err := m.GetNetworkResourcesByNetID(ctx, tx, db.LockingStrengthUpdate, id)
if err != nil {
return err
}
for _, resource := range resources {
err = m.DeleteResource(ctx, tx, resource)
if err != nil {
return err
}
}
return nil
}
func (m *managerImpl) DeleteResource(ctx context.Context, tx db.Transaction, resource *resources.NetworkResource) error {
if err := m.repo.DeleteResource(tx, resource); err != nil {
return fmt.Errorf("failed to delete network: %w", err)
}
tx.AddEvent(func() {
// addActivityEvent("resource deleted")
// noop
})
return nil
}