@@ -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