29 lines
535 B
Go
29 lines
535 B
Go
package logic
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
|
|
"spark-server/internal/pkg/errs"
|
|
)
|
|
|
|
func (s *Service) PurgeUser(ctx context.Context, userID int64) error {
|
|
if s == nil || s.repo == nil || userID <= 0 {
|
|
return nil
|
|
}
|
|
rows, err := s.repo.ListAllByUser(ctx, userID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, row := range rows {
|
|
if row == nil {
|
|
continue
|
|
}
|
|
if err := s.repo.Delete(ctx, userID, row.ID); err != nil && !errors.Is(err, errs.ErrNotFound) {
|
|
return err
|
|
}
|
|
s.deleteFavoriteMedia(ctx, row.Content)
|
|
}
|
|
return nil
|
|
}
|