github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/formationtemplateconstraintreferences/service.go (about)

     1  package formationtemplateconstraintreferences
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/kyma-incubator/compass/components/director/internal/model"
     7  	"github.com/kyma-incubator/compass/components/director/pkg/log"
     8  	"github.com/pkg/errors"
     9  )
    10  
    11  //go:generate mockery --exported --name=formationTemplateConstraintReferenceRepository --output=automock --outpkg=automock --case=underscore --disable-version-string
    12  type formationTemplateConstraintReferenceRepository interface {
    13  	Create(ctx context.Context, item *model.FormationTemplateConstraintReference) error
    14  	Delete(ctx context.Context, formationTemplateID, constraintID string) error
    15  }
    16  
    17  type service struct {
    18  	repo      formationTemplateConstraintReferenceRepository
    19  	converter constraintReferenceConverter
    20  }
    21  
    22  // NewService creates a FormationTemplateConstraintReference service
    23  func NewService(repo formationTemplateConstraintReferenceRepository, converter constraintReferenceConverter) *service {
    24  	return &service{
    25  		repo:      repo,
    26  		converter: converter,
    27  	}
    28  }
    29  
    30  // Create creates formation template constraint reference using the provided input
    31  func (s *service) Create(ctx context.Context, in *model.FormationTemplateConstraintReference) error {
    32  	log.C(ctx).Infof("Creating an Formation Template Constraint Reference for Constraint with ID %q and Formation Template with ID %q", in.ConstraintID, in.FormationTemplateID)
    33  
    34  	if err := s.repo.Create(ctx, in); err != nil {
    35  		return errors.Wrapf(err, "while creating Formation Template Constraint Reference for Constraint with ID %q and Formation Template with ID %q", in.ConstraintID, in.FormationTemplateID)
    36  	}
    37  
    38  	return nil
    39  }
    40  
    41  // Delete deletes formation template constraint reference by constraint ID and formation template ID
    42  func (s *service) Delete(ctx context.Context, constraintID, formationTemplateID string) error {
    43  	if err := s.repo.Delete(ctx, formationTemplateID, constraintID); err != nil {
    44  		return errors.Wrapf(err, "while deleting Formation Template Constraint Reference for Constraint with ID %q and Formation Template with ID %q", constraintID, formationTemplateID)
    45  	}
    46  
    47  	return nil
    48  }