From 9353d677b01db2f92e74628658666b53f8e9556b Mon Sep 17 00:00:00 2001 From: AlvoBen Date: Thu, 12 Dec 2024 13:06:55 +0200 Subject: [PATCH 1/5] fix llinter --- internal/services/projects.go | 50 +++++++++++------------------- internal/services/projects_test.go | 13 +------- 2 files changed, 19 insertions(+), 44 deletions(-) diff --git a/internal/services/projects.go b/internal/services/projects.go index e536b74ed..2414f2453 100644 --- a/internal/services/projects.go +++ b/internal/services/projects.go @@ -40,18 +40,7 @@ func FindProject( if resp.Projects[i].Name == projectName { projectTags, _ := cmd.Flags().GetString(commonParams.ProjectTagList) projectPrivatePackage, _ := cmd.Flags().GetString(commonParams.ProjecPrivatePackageFlag) - return updateProject( - resp, - cmd, - projectsWrapper, - groupsWrapper, - accessManagementWrapper, - applicationWrapper, - projectName, - applicationID, - projectTags, - projectPrivatePackage, - featureFlagsWrapper) + return updateProject(resp, cmd, projectsWrapper, applicationWrapper, projectName, applicationID, projectTags, projectPrivatePackage) } } @@ -174,33 +163,30 @@ func verifyApplicationAssociationDone(applicationName, projectID string, applica } //nolint:gocyclo -func updateProject( - resp *wrappers.ProjectsCollectionResponseModel, - cmd *cobra.Command, - projectsWrapper wrappers.ProjectsWrapper, - groupsWrapper wrappers.GroupsWrapper, - accessManagementWrapper wrappers.AccessManagementWrapper, - applicationsWrapper wrappers.ApplicationsWrapper, - projectName string, - applicationID []string, - projectTags string, - projectPrivatePackage string, - featureFlagsWrapper wrappers.FeatureFlagsWrapper, - -) (string, error) { +func updateProject(resp *wrappers.ProjectsCollectionResponseModel, + cmd *cobra.Command, projectsWrapper wrappers.ProjectsWrapper, applicationsWrapper wrappers.ApplicationsWrapper, + projectName string, applicationID []string, projectTags string, projectPrivatePackage string) (string, error) { var projectID string applicationName, _ := cmd.Flags().GetString(commonParams.ApplicationName) var projModel = wrappers.Project{} for i := 0; i < len(resp.Projects); i++ { - if resp.Projects[i].Name == projectName { - projectID = resp.Projects[i].ID + project := resp.Projects[i] + + if project.Name != projectName { + continue } - if resp.Projects[i].MainBranch != "" { - projModel.MainBranch = resp.Projects[i].MainBranch + + projectID = project.ID + + if project.MainBranch != "" { + projModel.MainBranch = project.MainBranch } - if resp.Projects[i].RepoURL != "" { - projModel.RepoURL = resp.Projects[i].RepoURL + + if project.RepoURL != "" { + projModel.RepoURL = project.RepoURL } + + break } if projectTags == "" && projectPrivatePackage == "" && len(applicationID) == 0 { logger.PrintIfVerbose("No applicationId or tags to update. Skipping project update.") diff --git a/internal/services/projects_test.go b/internal/services/projects_test.go index 00235b3fd..89d8866fb 100644 --- a/internal/services/projects_test.go +++ b/internal/services/projects_test.go @@ -257,18 +257,7 @@ func Test_updateProject(t *testing.T) { for _, tt := range tests { ttt := tt t.Run(tt.name, func(t *testing.T) { - got, err := updateProject( - ttt.args.resp, - ttt.args.cmd, - ttt.args.projectsWrapper, - ttt.args.groupsWrapper, - ttt.args.accessManagementWrapper, - ttt.args.applicationsWrapper, - ttt.args.projectName, - ttt.args.applicationID, - ttt.args.projectTags, - ttt.args.projectPrivatePackage, - ttt.args.featureFlagsWrapper) + got, err := updateProject(ttt.args.resp, ttt.args.cmd, ttt.args.projectsWrapper, ttt.args.applicationsWrapper, ttt.args.projectName, ttt.args.applicationID, ttt.args.projectTags, ttt.args.projectPrivatePackage) if (err != nil) != ttt.wantErr { t.Errorf("updateProject() error = %v, wantErr %v", err, ttt.wantErr) return From 9215bd66fe799daa4754b91f9fae3cf27b15a2ff Mon Sep 17 00:00:00 2001 From: AlvoBen Date: Thu, 12 Dec 2024 14:35:37 +0200 Subject: [PATCH 2/5] fix linter --- internal/services/projects_test.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/services/projects_test.go b/internal/services/projects_test.go index 89d8866fb..0ae2d7df1 100644 --- a/internal/services/projects_test.go +++ b/internal/services/projects_test.go @@ -257,7 +257,9 @@ func Test_updateProject(t *testing.T) { for _, tt := range tests { ttt := tt t.Run(tt.name, func(t *testing.T) { - got, err := updateProject(ttt.args.resp, ttt.args.cmd, ttt.args.projectsWrapper, ttt.args.applicationsWrapper, ttt.args.projectName, ttt.args.applicationID, ttt.args.projectTags, ttt.args.projectPrivatePackage) + got, err := updateProject(ttt.args.resp, ttt.args.cmd, ttt.args.projectsWrapper, + ttt.args.applicationsWrapper, ttt.args.projectName, ttt.args.applicationID, + ttt.args.projectTags, ttt.args.projectPrivatePackage) if (err != nil) != ttt.wantErr { t.Errorf("updateProject() error = %v, wantErr %v", err, ttt.wantErr) return From 3dd4977b0c5402c00c7b7c183c95f96f4821f47f Mon Sep 17 00:00:00 2001 From: AlvoBen Date: Thu, 12 Dec 2024 14:40:25 +0200 Subject: [PATCH 3/5] simplify --- internal/services/projects.go | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/internal/services/projects.go b/internal/services/projects.go index 2414f2453..d44a56a7b 100644 --- a/internal/services/projects.go +++ b/internal/services/projects.go @@ -171,22 +171,12 @@ func updateProject(resp *wrappers.ProjectsCollectionResponseModel, var projModel = wrappers.Project{} for i := 0; i < len(resp.Projects); i++ { project := resp.Projects[i] - - if project.Name != projectName { - continue - } - - projectID = project.ID - - if project.MainBranch != "" { + if project.Name == projectName { + projectID = project.ID projModel.MainBranch = project.MainBranch - } - - if project.RepoURL != "" { projModel.RepoURL = project.RepoURL + break } - - break } if projectTags == "" && projectPrivatePackage == "" && len(applicationID) == 0 { logger.PrintIfVerbose("No applicationId or tags to update. Skipping project update.") From 390784d9d46814493586960984c56ef5049a4917 Mon Sep 17 00:00:00 2001 From: AlvoBen Date: Thu, 12 Dec 2024 15:29:24 +0200 Subject: [PATCH 4/5] refactor --- internal/services/projects.go | 36 ++++++--- internal/services/projects_test.go | 126 ++++++++++++++++------------- 2 files changed, 95 insertions(+), 67 deletions(-) diff --git a/internal/services/projects.go b/internal/services/projects.go index d44a56a7b..85decf002 100644 --- a/internal/services/projects.go +++ b/internal/services/projects.go @@ -37,10 +37,11 @@ func FindProject( } for i := 0; i < len(resp.Projects); i++ { - if resp.Projects[i].Name == projectName { + project := resp.Projects[i] + if project.Name == projectName { projectTags, _ := cmd.Flags().GetString(commonParams.ProjectTagList) projectPrivatePackage, _ := cmd.Flags().GetString(commonParams.ProjecPrivatePackageFlag) - return updateProject(resp, cmd, projectsWrapper, applicationWrapper, projectName, applicationID, projectTags, projectPrivatePackage) + return updateProject(&project, cmd, projectsWrapper, applicationWrapper, applicationID, projectTags, projectPrivatePackage) } } @@ -163,21 +164,15 @@ func verifyApplicationAssociationDone(applicationName, projectID string, applica } //nolint:gocyclo -func updateProject(resp *wrappers.ProjectsCollectionResponseModel, +func updateProject(project *wrappers.ProjectResponseModel, cmd *cobra.Command, projectsWrapper wrappers.ProjectsWrapper, applicationsWrapper wrappers.ApplicationsWrapper, - projectName string, applicationID []string, projectTags string, projectPrivatePackage string) (string, error) { + applicationID []string, projectTags string, projectPrivatePackage string) (string, error) { var projectID string applicationName, _ := cmd.Flags().GetString(commonParams.ApplicationName) var projModel = wrappers.Project{} - for i := 0; i < len(resp.Projects); i++ { - project := resp.Projects[i] - if project.Name == projectName { - projectID = project.ID - projModel.MainBranch = project.MainBranch - projModel.RepoURL = project.RepoURL - break - } - } + projectID = project.ID + projModel.MainBranch = project.MainBranch + projModel.RepoURL = project.RepoURL if projectTags == "" && projectPrivatePackage == "" && len(applicationID) == 0 { logger.PrintIfVerbose("No applicationId or tags to update. Skipping project update.") return projectID, nil @@ -221,6 +216,21 @@ func updateProject(resp *wrappers.ProjectsCollectionResponseModel, return projectID, nil } +func findProjectByName(resp *wrappers.ProjectsCollectionResponseModel, projectName string) (string, wrappers.Project) { + var projectID string + var projModel wrappers.Project + for i := 0; i < len(resp.Projects); i++ { + project := resp.Projects[i] + if project.Name == projectName { + projectID = project.ID + projModel.MainBranch = project.MainBranch + projModel.RepoURL = project.RepoURL + break + } + } + return projectID, projModel +} + func UpsertProjectGroups(projModel *wrappers.Project, projectsWrapper wrappers.ProjectsWrapper, accessManagementWrapper wrappers.AccessManagementWrapper, projectID string, projectName string, featureFlagsWrapper wrappers.FeatureFlagsWrapper, groupsMap []*wrappers.Group) error { diff --git a/internal/services/projects_test.go b/internal/services/projects_test.go index 0ae2d7df1..5e028db7b 100644 --- a/internal/services/projects_test.go +++ b/internal/services/projects_test.go @@ -181,7 +181,7 @@ func Test_createProject(t *testing.T) { func Test_updateProject(t *testing.T) { type args struct { - resp *wrappers.ProjectsCollectionResponseModel + project *wrappers.ProjectResponseModel cmd *cobra.Command projectsWrapper wrappers.ProjectsWrapper groupsWrapper wrappers.GroupsWrapper @@ -189,7 +189,6 @@ func Test_updateProject(t *testing.T) { applicationsWrapper wrappers.ApplicationsWrapper projectName string applicationID []string - projectGroups string projectTags string projectPrivatePackage string featureFlagsWrapper wrappers.FeatureFlagsWrapper @@ -200,66 +199,85 @@ func Test_updateProject(t *testing.T) { want string wantErr bool }{ - {name: "When called with existing project, update the project and return the project Id", args: args{ - resp: &wrappers.ProjectsCollectionResponseModel{ - Projects: []wrappers.ProjectResponseModel{ - {ID: "ID-project-name", Name: "project-name"}}, + { + name: "When called with existing project, update the project and return the project Id", + args: args{ + project: &wrappers.ProjectResponseModel{ + ID: "ID-project-name", + Name: "project-name", + }, + cmd: &cobra.Command{}, + projectsWrapper: &mock.ProjectsMockWrapper{}, + groupsWrapper: &mock.GroupsMockWrapper{}, + accessManagementWrapper: &mock.AccessManagementMockWrapper{}, + projectName: "project-name", + applicationID: nil, + featureFlagsWrapper: &mock.FeatureFlagsMockWrapper{}, }, - cmd: &cobra.Command{}, - projectsWrapper: &mock.ProjectsMockWrapper{}, - groupsWrapper: &mock.GroupsMockWrapper{}, - accessManagementWrapper: &mock.AccessManagementMockWrapper{}, - projectName: "project-name", - applicationID: nil, - featureFlagsWrapper: &mock.FeatureFlagsMockWrapper{}, - }, want: "ID-project-name", wantErr: false}, - {name: "without app ID and with project tags", args: args{ - resp: &wrappers.ProjectsCollectionResponseModel{ - Projects: []wrappers.ProjectResponseModel{ - {ID: "ID-project-name", Name: "project-name"}}, + want: "ID-project-name", + wantErr: false, + }, + { + name: "without app ID and with project tags", + args: args{ + project: &wrappers.ProjectResponseModel{ + ID: "ID-project-name", + Name: "project-name", + }, + cmd: &cobra.Command{}, + projectsWrapper: &mock.ProjectsMockWrapper{}, + groupsWrapper: &mock.GroupsMockWrapper{}, + accessManagementWrapper: &mock.AccessManagementMockWrapper{}, + projectName: "project-name", + projectTags: "tag1,tag2", + applicationID: nil, + featureFlagsWrapper: &mock.FeatureFlagsMockWrapper{}, }, - cmd: &cobra.Command{}, - projectsWrapper: &mock.ProjectsMockWrapper{}, - groupsWrapper: &mock.GroupsMockWrapper{}, - accessManagementWrapper: &mock.AccessManagementMockWrapper{}, - projectName: "project-name", - projectTags: "tag1,tag2", - applicationID: nil, - featureFlagsWrapper: &mock.FeatureFlagsMockWrapper{}, - }, want: "ID-project-name", wantErr: false}, - {name: "When called with application ID", args: args{ - resp: &wrappers.ProjectsCollectionResponseModel{ - Projects: []wrappers.ProjectResponseModel{ - {ID: "ID-project-name", Name: "project-name"}}, + want: "ID-project-name", + wantErr: false, + }, + { + name: "When called with application ID", + args: args{ + project: &wrappers.ProjectResponseModel{ + ID: "ID-project-name", + Name: "project-name", + }, + cmd: &cobra.Command{}, + projectsWrapper: &mock.ProjectsMockWrapper{}, + groupsWrapper: &mock.GroupsMockWrapper{}, + accessManagementWrapper: &mock.AccessManagementMockWrapper{}, + projectName: "project-name", + projectPrivatePackage: "true", + featureFlagsWrapper: &mock.FeatureFlagsMockWrapper{}, }, - cmd: &cobra.Command{}, - projectsWrapper: &mock.ProjectsMockWrapper{}, - groupsWrapper: &mock.GroupsMockWrapper{}, - accessManagementWrapper: &mock.AccessManagementMockWrapper{}, - projectName: "project-name", - projectPrivatePackage: "true", - featureFlagsWrapper: &mock.FeatureFlagsMockWrapper{}, - }, want: "ID-project-name", wantErr: false}, - {name: "When called with mock fake error model return fake error from project create", args: args{ - projectName: "mock-some-error-model", - resp: &wrappers.ProjectsCollectionResponseModel{ - Projects: []wrappers.ProjectResponseModel{ - {ID: "ID-mock-some-error-model", Name: "mock-some-error-model"}}, + want: "ID-project-name", + wantErr: false, + }, + { + name: "When called with mock fake error model return fake error from project create", + args: args{ + projectName: "mock-some-error-model", + project: &wrappers.ProjectResponseModel{ + ID: "ID-mock-some-error-model", + Name: "mock-some-error-model", + }, + cmd: &cobra.Command{}, + projectsWrapper: &mock.ProjectsMockWrapper{}, + groupsWrapper: &mock.GroupsMockWrapper{}, + accessManagementWrapper: &mock.AccessManagementMockWrapper{}, + applicationID: []string{"1"}, + featureFlagsWrapper: &mock.FeatureFlagsMockWrapper{}, }, - cmd: &cobra.Command{}, - projectsWrapper: &mock.ProjectsMockWrapper{}, - groupsWrapper: &mock.GroupsMockWrapper{}, - accessManagementWrapper: &mock.AccessManagementMockWrapper{}, - applicationID: []string{"1"}, - featureFlagsWrapper: &mock.FeatureFlagsMockWrapper{}, - }, want: "", wantErr: true}, + want: "", + wantErr: true, + }, } for _, tt := range tests { ttt := tt t.Run(tt.name, func(t *testing.T) { - got, err := updateProject(ttt.args.resp, ttt.args.cmd, ttt.args.projectsWrapper, - ttt.args.applicationsWrapper, ttt.args.projectName, ttt.args.applicationID, - ttt.args.projectTags, ttt.args.projectPrivatePackage) + got, err := updateProject(ttt.args.project, ttt.args.cmd, ttt.args.projectsWrapper, + ttt.args.applicationsWrapper, ttt.args.applicationID, ttt.args.projectTags, ttt.args.projectPrivatePackage) if (err != nil) != ttt.wantErr { t.Errorf("updateProject() error = %v, wantErr %v", err, ttt.wantErr) return From 4e203749f037d9c1155d086f23b786be09c547b5 Mon Sep 17 00:00:00 2001 From: AlvoBen Date: Thu, 12 Dec 2024 15:30:38 +0200 Subject: [PATCH 5/5] delete unused function --- internal/services/projects.go | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/internal/services/projects.go b/internal/services/projects.go index 85decf002..7dc72e7d3 100644 --- a/internal/services/projects.go +++ b/internal/services/projects.go @@ -216,21 +216,6 @@ func updateProject(project *wrappers.ProjectResponseModel, return projectID, nil } -func findProjectByName(resp *wrappers.ProjectsCollectionResponseModel, projectName string) (string, wrappers.Project) { - var projectID string - var projModel wrappers.Project - for i := 0; i < len(resp.Projects); i++ { - project := resp.Projects[i] - if project.Name == projectName { - projectID = project.ID - projModel.MainBranch = project.MainBranch - projModel.RepoURL = project.RepoURL - break - } - } - return projectID, projModel -} - func UpsertProjectGroups(projModel *wrappers.Project, projectsWrapper wrappers.ProjectsWrapper, accessManagementWrapper wrappers.AccessManagementWrapper, projectID string, projectName string, featureFlagsWrapper wrappers.FeatureFlagsWrapper, groupsMap []*wrappers.Group) error {