mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +00:00
fix(indexers): delete and clean (#343)
This commit is contained in:
parent
652bd8f6f3
commit
33e3691737
4 changed files with 87 additions and 14 deletions
|
@ -24,6 +24,7 @@ type Service interface {
|
|||
Update(ctx context.Context, indexer domain.Indexer) (*domain.Indexer, error)
|
||||
Delete(ctx context.Context, id int) error
|
||||
FindByFilterID(ctx context.Context, id int) ([]domain.Indexer, error)
|
||||
FindByID(ctx context.Context, id int) (*domain.Indexer, error)
|
||||
List(ctx context.Context) ([]domain.Indexer, error)
|
||||
GetAll() ([]*domain.IndexerDefinition, error)
|
||||
GetTemplates() ([]domain.IndexerDefinition, error)
|
||||
|
@ -115,13 +116,18 @@ func (s *service) Update(ctx context.Context, indexer domain.Indexer) (*domain.I
|
|||
}
|
||||
|
||||
func (s *service) Delete(ctx context.Context, id int) error {
|
||||
indexer, err := s.repo.FindByID(ctx, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := s.repo.Delete(ctx, id); err != nil {
|
||||
s.log.Error().Err(err).Msgf("could not delete indexer by id: %v", id)
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO remove handler if needed
|
||||
// remove from lookup tables
|
||||
s.removeIndexer(*indexer)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -136,6 +142,16 @@ func (s *service) FindByFilterID(ctx context.Context, id int) ([]domain.Indexer,
|
|||
return indexers, err
|
||||
}
|
||||
|
||||
func (s *service) FindByID(ctx context.Context, id int) (*domain.Indexer, error) {
|
||||
indexers, err := s.repo.FindByID(ctx, id)
|
||||
if err != nil {
|
||||
s.log.Error().Err(err).Msgf("could not find indexer by id: %v", id)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return indexers, err
|
||||
}
|
||||
|
||||
func (s *service) List(ctx context.Context) ([]domain.Indexer, error) {
|
||||
indexers, err := s.repo.List(ctx)
|
||||
if err != nil {
|
||||
|
@ -321,10 +337,16 @@ func (s *service) Start() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (s *service) removeIndexer(indexer domain.Indexer) error {
|
||||
delete(s.definitions, indexer.Identifier)
|
||||
func (s *service) removeIndexer(indexer domain.Indexer) {
|
||||
// remove Torznab
|
||||
if indexer.Implementation == "torznab" {
|
||||
delete(s.torznabIndexers, indexer.Identifier)
|
||||
}
|
||||
|
||||
return nil
|
||||
// remove mapped definition
|
||||
delete(s.mappedDefinitions, indexer.Identifier)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (s *service) addIndexer(indexer domain.Indexer) error {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue