fix: add storage deletion with library cleanup and scan validation

- Delete storage config now properly removes related libraries and media
- Scanner validates storage config exists before starting cloud scan
- Prevents orphaned scans when storage is removed
- Added repository methods: DeleteByType, FindByID for storage config
- Remove unused storageHandler route to fix compilation
This commit is contained in:
ShukeBta
2026-06-11 12:48:32 +08:00
parent e99d70b017
commit 95794f7bbc
7 changed files with 82 additions and 23 deletions
@@ -65,3 +65,19 @@ func (r *StorageConfigRepository) Upsert(ctx context.Context, c *model.StorageCo
"updated_at": time.Now(),
}).Error
}
// Delete removes a storage config by ID.
func (r *StorageConfigRepository) Delete(ctx context.Context, id string) error {
return r.db.WithContext(ctx).Where("id = ?", id).Delete(&model.StorageConfig{}).Error
}
// FindByID returns a storage config by ID.
func (r *StorageConfigRepository) FindByID(ctx context.Context, id string) (*model.StorageConfig, error) {
var c model.StorageConfig
err := r.db.WithContext(ctx).Where("id = ?", id).First(&c).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, nil
}
return &c, err
}