From b384ced30ce0ca00d66c23323b2fe04a2e7c4578 Mon Sep 17 00:00:00 2001 From: iamayushm <32041961+iamayushm@users.noreply.github.com> Date: Thu, 13 Jul 2023 00:23:56 +0530 Subject: [PATCH] fix: Deployment enforcement config save err (#3626) * wip * wip --- pkg/attributes/AttributesService.go | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/pkg/attributes/AttributesService.go b/pkg/attributes/AttributesService.go index ed3dae7e9d1..1f7b24403b6 100644 --- a/pkg/attributes/AttributesService.go +++ b/pkg/attributes/AttributesService.go @@ -240,20 +240,10 @@ func (impl AttributesServiceImpl) UpdateKeyValueByOne(key string) error { } func (impl AttributesServiceImpl) AddDeploymentEnforcementConfig(request *AttributesDto) (*AttributesDto, error) { - model, err := impl.attributesRepository.FindByKey(ENFORCE_DEPLOYMENT_TYPE_CONFIG) - if err != nil && err != pg.ErrNoRows { - impl.logger.Errorw("error in fetching deploymentEnforcementConfig from db", "error", err, "key", request.Key) - return request, err - } - dbConnection := impl.attributesRepository.GetConnection() - tx, terr := dbConnection.Begin() - if terr != nil { - return request, terr - } newConfig := make(map[string]map[string]bool) - err = json.Unmarshal([]byte(request.Value), &newConfig) - if err != nil { - return request, err + attributesErr := json.Unmarshal([]byte(request.Value), &newConfig) + if attributesErr != nil { + return request, attributesErr } for environmentId, envConfig := range newConfig { AllowedDeploymentAppTypes := 0 @@ -267,8 +257,19 @@ func (impl AttributesServiceImpl) AddDeploymentEnforcementConfig(request *Attrib "at least one deployment app type should be allowed", environmentId)) } } + dbConnection := impl.attributesRepository.GetConnection() + tx, terr := dbConnection.Begin() + if terr != nil { + return request, terr + } // Rollback tx on error. defer tx.Rollback() + + model, err := impl.attributesRepository.FindByKey(ENFORCE_DEPLOYMENT_TYPE_CONFIG) + if err != nil && err != pg.ErrNoRows { + impl.logger.Errorw("error in fetching deploymentEnforcementConfig from db", "error", err, "key", request.Key) + return request, err + } if err == pg.ErrNoRows { model := &repository.Attributes{ Key: ENFORCE_DEPLOYMENT_TYPE_CONFIG,