Skip to content

Commit

Permalink
fix(appeal): skip creation on appeal duplication error for additional…
Browse files Browse the repository at this point in the history
… appeals (#181)

* fix(appeal): skip creation on appeal duplication error for additional appeals

* chore: wrap error using %w

Co-authored-by: Abduh <[email protected]>

Co-authored-by: Abduh <[email protected]>
  • Loading branch information
rahmatrhd and mabdh authored Jun 22, 2022
1 parent cd0a623 commit a50679c
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions core/appeal/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ package appeal
import (
"context"
"encoding/json"
"errors"
"fmt"
"reflect"
"time"
Expand Down Expand Up @@ -744,7 +745,6 @@ func (s *Service) fillApprovals(a *domain.Appeal, p *domain.Policy) error {
}

func (s *Service) handleAppealRequirements(ctx context.Context, a *domain.Appeal, p *domain.Policy) error {
additionalAppeals := []*domain.Appeal{}
if p.Requirements != nil && len(p.Requirements) > 0 {
for reqIndex, r := range p.Requirements {
isAppealMatchesRequirement, err := r.On.IsMatch(a)
Expand Down Expand Up @@ -776,15 +776,15 @@ func (s *Service) handleAppealRequirements(ctx context.Context, a *domain.Appeal
additionalAppeal.PolicyID = aa.Policy.ID
additionalAppeal.PolicyVersion = uint(aa.Policy.Version)
}
additionalAppeals = append(additionalAppeals, additionalAppeal)
if err := s.Create(ctx, []*domain.Appeal{additionalAppeal}); err != nil {
if errors.Is(err, ErrAppealDuplicate) {
continue
}
return fmt.Errorf("creating additional appeals: %w", err)
}
}
}
}
if len(additionalAppeals) > 0 {
if err := s.Create(ctx, additionalAppeals); err != nil {
return fmt.Errorf("creating additional appeals: %v", err)
}
}
return nil
}

Expand Down

0 comments on commit a50679c

Please sign in to comment.