Skip to content

Commit 88332a1

Browse files
authored
fix: error mapping (#3161)
1 parent 3a7ccb0 commit 88332a1

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

openmeter/productcatalog/addon/service/addon.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func (s service) resolveFeatures(ctx context.Context, namespace string, rateCard
6868
}
6969

7070
// Let's make a clone of it
71-
rateCardsClone := (rateCards.Clone())
71+
rateCardsClone := rateCards.Clone()
7272

7373
for _, rateCard := range rateCardsClone {
7474
fK := rateCard.AsMeta().FeatureKey
@@ -138,7 +138,7 @@ func (s service) resolveFeatures(ctx context.Context, namespace string, rateCard
138138
return models.NewGenericValidationError(fmt.Errorf("unsupported RateCard type: %s", rateCard.Type()))
139139
}
140140

141-
if err := rateCard.Merge(rcNew); err != nil {
141+
if err = rateCard.Merge(rcNew); err != nil {
142142
return fmt.Errorf("failed to merge RateCard: %w", err)
143143
}
144144
} else if fID == nil && fK != nil {
@@ -172,7 +172,7 @@ func (s service) resolveFeatures(ctx context.Context, namespace string, rateCard
172172
return fmt.Errorf("unsupported RateCard type: %s", rateCard.Type())
173173
}
174174

175-
if err := rateCard.Merge(rcNew); err != nil {
175+
if err = rateCard.Merge(rcNew); err != nil {
176176
return fmt.Errorf("failed to merge RateCard: %w", err)
177177
}
178178
}
@@ -273,7 +273,11 @@ func (s service) CreateAddon(ctx context.Context, params addon.CreateAddonInput)
273273
logger.Debug("creating add-on")
274274

275275
if len(params.RateCards) > 0 {
276-
if err := s.resolveFeatures(ctx, params.Namespace, &params.RateCards); err != nil {
276+
if err = s.resolveFeatures(ctx, params.Namespace, &params.RateCards); err != nil {
277+
if models.IsGenericNotFoundError(err) {
278+
err = models.NewGenericValidationError(err)
279+
}
280+
277281
return nil, fmt.Errorf("failed to expand features for ratecards in add-on: %w", err)
278282
}
279283
}
@@ -421,6 +425,10 @@ func (s service) UpdateAddon(ctx context.Context, params addon.UpdateAddonInput)
421425

422426
if params.RateCards != nil && len(*params.RateCards) > 0 {
423427
if err := s.resolveFeatures(ctx, params.Namespace, params.RateCards); err != nil {
428+
if models.IsGenericNotFoundError(err) {
429+
err = models.NewGenericValidationError(err)
430+
}
431+
424432
return nil, fmt.Errorf("failed to expand features for ratecards in add-on: %w", err)
425433
}
426434
}

openmeter/productcatalog/errors.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ var ErrRateCardDuplicatedKey = models.NewValidationIssue(
164164
ErrCodeRateCardDuplicatedKey,
165165
"duplicated key",
166166
models.WithFieldString("key"),
167-
models.WithWarningSeverity(),
167+
models.WithCriticalSeverity(),
168168
)
169169

170170
const ErrCodeRateCardEntitlementTemplateWithNoFeature models.ErrorCode = "entitlement_template_with_no_feature"

openmeter/productcatalog/plan/service/plan.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (s service) resolveFeatures(ctx context.Context, namespace string, rateCard
6565
}
6666

6767
// Let's make a clone of it
68-
rateCardsClone := (rateCards.Clone())
68+
rateCardsClone := rateCards.Clone()
6969

7070
for _, rateCard := range rateCardsClone {
7171
fK := rateCard.AsMeta().FeatureKey
@@ -135,13 +135,13 @@ func (s service) resolveFeatures(ctx context.Context, namespace string, rateCard
135135
return fmt.Errorf("unsupported RateCard type: %s", rateCard.Type())
136136
}
137137

138-
if err := rateCard.Merge(rcNew); err != nil {
138+
if err = rateCard.Merge(rcNew); err != nil {
139139
return fmt.Errorf("failed to merge RateCard: %w", err)
140140
}
141141
} else if fID == nil && fK != nil {
142142
// We need to populate FeatureID
143143
if !featureByKeyOk {
144-
return fmt.Errorf("feature with key %s not found", *fK)
144+
return models.NewGenericNotFoundError(fmt.Errorf("feature with key %s not found", *fK))
145145
}
146146

147147
// FIXME: merging like this is a pain, we should just use pointers...
@@ -169,7 +169,7 @@ func (s service) resolveFeatures(ctx context.Context, namespace string, rateCard
169169
return fmt.Errorf("unsupported RateCard type: %s", rateCard.Type())
170170
}
171171

172-
if err := rateCard.Merge(rcNew); err != nil {
172+
if err = rateCard.Merge(rcNew); err != nil {
173173
return fmt.Errorf("failed to merge RateCard: %w", err)
174174
}
175175
}
@@ -226,7 +226,11 @@ func (s service) CreatePlan(ctx context.Context, params plan.CreatePlanInput) (*
226226

227227
if len(params.Phases) > 0 {
228228
for _, phase := range params.Phases {
229-
if err := s.resolveFeatures(ctx, params.Namespace, &phase.RateCards); err != nil {
229+
if err = s.resolveFeatures(ctx, params.Namespace, &phase.RateCards); err != nil {
230+
if models.IsGenericNotFoundError(err) {
231+
err = models.NewGenericValidationError(err)
232+
}
233+
230234
return nil, fmt.Errorf("failed to expand Features for RateCards in PlanPhase: %w", err)
231235
}
232236
}
@@ -366,6 +370,10 @@ func (s service) UpdatePlan(ctx context.Context, params plan.UpdatePlanInput) (*
366370
if params.Phases != nil && len(*params.Phases) > 0 {
367371
for _, phase := range *params.Phases {
368372
if err := s.resolveFeatures(ctx, params.Namespace, &phase.RateCards); err != nil {
373+
if models.IsGenericNotFoundError(err) {
374+
err = models.NewGenericValidationError(err)
375+
}
376+
369377
return nil, fmt.Errorf("failed to expand Features for RateCards in PlanPhase: %w", err)
370378
}
371379
}

0 commit comments

Comments
 (0)