Use typed campaign errors instead of string matching
Introduce sentinel and structured errors for access review campaign validation failures, and map them to INVALID in GraphQL resolvers via errors.Is rather than matching error message prefixes. Signed-off-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
@@ -9,7 +9,6 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/vikstrous/dataloadgen"
|
||||
"go.gearno.de/kit/log"
|
||||
@@ -725,6 +724,10 @@ func (r *mutationResolver) CreateAccessReviewCampaign(ctx context.Context, input
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
if accessreview.IsCampaignClientError(err) {
|
||||
return nil, gqlutils.Invalid(ctx, err)
|
||||
}
|
||||
|
||||
r.logger.ErrorCtx(ctx, "cannot create access review campaign", log.Error(err))
|
||||
|
||||
return nil, gqlutils.Internal(ctx)
|
||||
@@ -757,7 +760,7 @@ func (r *mutationResolver) UpdateAccessReviewCampaign(ctx context.Context, input
|
||||
return nil, gqlutils.NotFound(ctx, err)
|
||||
}
|
||||
|
||||
if strings.HasPrefix(err.Error(), "cannot update campaign:") {
|
||||
if accessreview.IsCampaignClientError(err) {
|
||||
return nil, gqlutils.Invalid(ctx, err)
|
||||
}
|
||||
|
||||
@@ -802,7 +805,7 @@ func (r *mutationResolver) StartAccessReviewCampaign(ctx context.Context, input
|
||||
|
||||
campaign, err := r.accessReview.StartCampaign(ctx, scope, input.AccessReviewCampaignID)
|
||||
if err != nil {
|
||||
if strings.HasPrefix(err.Error(), "cannot start campaign:") {
|
||||
if accessreview.IsCampaignClientError(err) {
|
||||
return nil, gqlutils.Invalid(ctx, err)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user