fix(subscriptions): reject concurrent duplicate rules

Fixes #66
This commit is contained in:
ShukeBta
2026-08-10 19:30:17 +08:00
parent c32f23a626
commit c0d743d89d
18 changed files with 584 additions and 10 deletions
+9
View File
@@ -98,8 +98,17 @@ func (s *SubscriptionService) Create(ctx context.Context, sub *model.Subscriptio
return errors.New("name and feed_url required")
}
normalizeSubscriptionDefaults(sub)
model.RefreshSubscriptionIdentity(sub)
if duplicate, err := s.subscriptionDuplicate(ctx, sub, ""); err != nil {
return err
} else if duplicate != nil {
return newSubscriptionAlreadyExistsError(duplicate.ID)
}
enabled := sub.Enabled
if err := s.repo.Subscription.Create(ctx, sub); err != nil {
if duplicate, lookupErr := s.subscriptionDuplicate(ctx, sub, ""); lookupErr == nil && duplicate != nil {
return newSubscriptionAlreadyExistsError(duplicate.ID)
}
return err
}
if !enabled {