@@ -11,6 +11,7 @@ import (
1111const (
1212 ApplicationRuleType = "project.name.in"
1313 DirectAssociationKey = "scan.config.applications.directAssociations"
14+ trueString = "true"
1415)
1516
1617func createApplicationIds (applicationID , existingApplicationIds []string ) []string {
@@ -78,27 +79,11 @@ func findApplicationAndUpdate(applicationName string, applicationsWrapper wrappe
7879 return errors .Errorf ("%s: %s" , errorConstants .ApplicationNotFound , applicationName )
7980 }
8081
81- directAssociationEnabled , _ := wrappers .GetSpecificFeatureFlag (featureFlagsWrapper , wrappers .DirectAssociationEnabled )
82- daMigrationEnabled , _ := wrappers .GetSpecificFeatureFlag (featureFlagsWrapper , wrappers .DA_MIGRATION_ENABLED )
83- var isDAConfigurationEnabled bool
84-
85- if daMigrationEnabled .Status {
86- tenantConfigurationResponse , errorModel , err := tenantWrapper .GetTenantConfiguration ()
87- if err != nil {
88- return err
89- }
90- if errorModel != nil {
91- return errors .New (errorModel .Message )
92- }
93- if tenantConfigurationResponse != nil {
94- for _ , resp := range * tenantConfigurationResponse {
95- if resp .Key == DirectAssociationKey && resp .Value == "true" {
96- isDAConfigurationEnabled = true
97- }
98- }
99- }
82+ isEnabled , err := checkDirectAssociationEnabled (featureFlagsWrapper , tenantWrapper )
83+ if err != nil {
84+ return errors .Wrap (err , "error while checking if direct association is enabled" )
10085 }
101- if ( daMigrationEnabled . Status && isDAConfigurationEnabled ) || directAssociationEnabled . Status {
86+ if isEnabled {
10287 err = associateProjectToApplication (applicationResp .ID , projectID , applicationResp .ProjectIds , applicationsWrapper )
10388 if err != nil {
10489 return err
@@ -127,6 +112,28 @@ func findApplicationAndUpdate(applicationName string, applicationsWrapper wrappe
127112 return nil
128113}
129114
115+ func checkDirectAssociationEnabled (featureFlagsWrapper wrappers.FeatureFlagsWrapper , tenantWrapper wrappers.TenantConfigurationWrapper ) (bool , error ) {
116+ directAssociationEnabled , _ := wrappers .GetSpecificFeatureFlag (featureFlagsWrapper , wrappers .DirectAssociationEnabled )
117+ daMigrationEnabled , _ := wrappers .GetSpecificFeatureFlag (featureFlagsWrapper , wrappers .DA_MIGRATION_ENABLED )
118+ var isDAConfigurationEnabled bool
119+ if daMigrationEnabled .Status {
120+ tenantConfigurationResponse , errorModel , err := tenantWrapper .GetTenantConfiguration ()
121+ if err != nil {
122+ return false , err
123+ }
124+ if errorModel != nil {
125+ return false , errors .New (errorModel .Message )
126+ }
127+ if tenantConfigurationResponse != nil {
128+ for _ , resp := range * tenantConfigurationResponse {
129+ if resp .Key == DirectAssociationKey && resp .Value == trueString {
130+ isDAConfigurationEnabled = true
131+ }
132+ }
133+ }
134+ }
135+ return (daMigrationEnabled .Status && isDAConfigurationEnabled ) || directAssociationEnabled .Status , nil
136+ }
130137func updateApplication (applicationModel * wrappers.ApplicationConfiguration , applicationWrapper wrappers.ApplicationsWrapper , applicationID string ) error {
131138 errorModel , err := applicationWrapper .Update (applicationID , applicationModel )
132139 return handleApplicationUpdateResponse (errorModel , err )
0 commit comments