spark-server/internal/module/moment/logic/purge.go
2026-09-20 17:49:09 +08:00

32 lines
663 B
Go

package logic
import (
"context"
"spark-server/internal/module/moment/entity"
)
func (s *Service) PurgeUser(ctx context.Context, userID int64) error {
if s == nil || s.repo == nil || userID <= 0 {
return nil
}
posts, err := s.repo.ListAllByAuthor(ctx, userID)
if err != nil {
return err
}
st, err := s.repo.GetSettings(ctx, userID)
if err != nil {
return err
}
if err := s.repo.PurgeUser(ctx, userID); err != nil {
return err
}
for _, post := range posts {
s.deleteMedia(ctx, post)
}
if s.objects != nil && st != nil && st.CoverKey != "" && entity.ValidCoverKey(st.CoverKey) {
_ = s.objects.Delete(ctx, st.CoverKey)
}
return nil
}