Use status-specific errors for non-draft campaigns
Replace ErrCampaignCannotStart and ErrCampaignCannotUpdate with sentinels per campaign status, mapped through CampaignStatusError and wrapped with operation-specific fmt.Errorf prefixes. Signed-off-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
@@ -760,7 +760,10 @@ func (r *mutationResolver) UpdateAccessReviewCampaign(ctx context.Context, input
|
||||
return nil, gqlutils.NotFound(ctx, err)
|
||||
}
|
||||
|
||||
if errors.Is(err, accessreview.ErrCampaignCannotUpdate) {
|
||||
if errors.Is(err, accessreview.ErrCampaignInProgress) ||
|
||||
errors.Is(err, accessreview.ErrCampaignPendingActions) ||
|
||||
errors.Is(err, accessreview.ErrCampaignCompleted) ||
|
||||
errors.Is(err, accessreview.ErrCampaignCancelled) {
|
||||
return nil, gqlutils.Invalid(ctx, err)
|
||||
}
|
||||
|
||||
@@ -806,7 +809,10 @@ func (r *mutationResolver) StartAccessReviewCampaign(ctx context.Context, input
|
||||
campaign, err := r.accessReview.StartCampaign(ctx, scope, input.AccessReviewCampaignID)
|
||||
if err != nil {
|
||||
if errors.Is(err, accessreview.ErrCampaignMissingSources) ||
|
||||
errors.Is(err, accessreview.ErrCampaignCannotStart) {
|
||||
errors.Is(err, accessreview.ErrCampaignInProgress) ||
|
||||
errors.Is(err, accessreview.ErrCampaignPendingActions) ||
|
||||
errors.Is(err, accessreview.ErrCampaignCompleted) ||
|
||||
errors.Is(err, accessreview.ErrCampaignCancelled) {
|
||||
return nil, gqlutils.Invalid(ctx, err)
|
||||
}
|
||||
|
||||
@@ -878,6 +884,13 @@ func (r *mutationResolver) AddAccessReviewCampaignSource(ctx context.Context, in
|
||||
return nil, gqlutils.NotFound(ctx, err)
|
||||
}
|
||||
|
||||
if errors.Is(err, accessreview.ErrCampaignInProgress) ||
|
||||
errors.Is(err, accessreview.ErrCampaignPendingActions) ||
|
||||
errors.Is(err, accessreview.ErrCampaignCompleted) ||
|
||||
errors.Is(err, accessreview.ErrCampaignCancelled) {
|
||||
return nil, gqlutils.Invalid(ctx, err)
|
||||
}
|
||||
|
||||
r.logger.ErrorCtx(ctx, "cannot add scope source to access review campaign", log.Error(err))
|
||||
|
||||
return nil, gqlutils.Internal(ctx)
|
||||
|
||||
Reference in New Issue
Block a user