From 8bc2a7144a3bcb09b25fb6a493ef7bfa264a64d4 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Fri, 21 Apr 2023 16:15:14 +0100 Subject: [PATCH] [v9.5.x] Nested folders: Fix error response codes (#66975) Nested folders: Fix error response codes (#66943) * Nested folders: Fix error response codes Fix error handling (cherry picked from commit 24696d593b978e822dc8ed2abdb494d48e71dc37) Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com> --- pkg/services/folder/folderimpl/folder.go | 4 ++-- pkg/services/folder/folderimpl/sqlstore.go | 2 +- pkg/services/folder/model.go | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pkg/services/folder/folderimpl/folder.go b/pkg/services/folder/folderimpl/folder.go index 2dae51cd872..8014dbf7dcf 100644 --- a/pkg/services/folder/folderimpl/folder.go +++ b/pkg/services/folder/folderimpl/folder.go @@ -533,7 +533,7 @@ func (s *Service) Move(ctx context.Context, cmd *folder.MoveFolderCommand) (*fol // current folder height + current folder + parent folder + parent folder depth should be less than or equal 8 if folderHeight+len(parents)+2 > folder.MaxNestedFolderDepth { - return nil, folder.ErrMaximumDepthReached + return nil, folder.ErrMaximumDepthReached.Errorf("failed to move folder") } // if the current folder is already a parent of newparent, we should return error @@ -749,7 +749,7 @@ func (s *Service) validateParent(ctx context.Context, orgID int64, parentUID str } if len(ancestors) == folder.MaxNestedFolderDepth { - return folder.ErrMaximumDepthReached + return folder.ErrMaximumDepthReached.Errorf("failed to validate parent folder") } // Create folder under itself is not allowed diff --git a/pkg/services/folder/folderimpl/sqlstore.go b/pkg/services/folder/folderimpl/sqlstore.go index 12691f5d056..30d1256dd70 100644 --- a/pkg/services/folder/folderimpl/sqlstore.go +++ b/pkg/services/folder/folderimpl/sqlstore.go @@ -284,7 +284,7 @@ func (ss *sqlStore) getParentsMySQL(ctx context.Context, cmd folder.GetParentsQu folders = append(folders, f) uid = f.ParentUID if len(folders) > folder.MaxNestedFolderDepth { - return folder.ErrFolderTooDeep + return folder.ErrMaximumDepthReached.Errorf("failed to get parent folders iteratively") } } return nil diff --git a/pkg/services/folder/model.go b/pkg/services/folder/model.go index ef32296a9c2..b3a11466357 100644 --- a/pkg/services/folder/model.go +++ b/pkg/services/folder/model.go @@ -11,7 +11,6 @@ var ErrMaximumDepthReached = errutil.NewBase(errutil.StatusBadRequest, "folder.m var ErrBadRequest = errutil.NewBase(errutil.StatusBadRequest, "folder.bad-request") var ErrDatabaseError = errutil.NewBase(errutil.StatusInternal, "folder.database-error") var ErrInternal = errutil.NewBase(errutil.StatusInternal, "folder.internal") -var ErrFolderTooDeep = errutil.NewBase(errutil.StatusInternal, "folder.too-deep") var ErrCircularReference = errutil.NewBase(errutil.StatusBadRequest, "folder.circular-reference", errutil.WithPublicMessage("Circular reference detected")) const (