diff --git a/pkg/services/folder/folderimpl/folder_test.go b/pkg/services/folder/folderimpl/folder_test.go index 14d01a34489..996ccd5351c 100644 --- a/pkg/services/folder/folderimpl/folder_test.go +++ b/pkg/services/folder/folderimpl/folder_test.go @@ -421,9 +421,11 @@ func TestIntegrationNestedFolderService(t *testing.T) { _ = createRule(t, alertStore, parent.UID, "parent alert") _ = createRule(t, alertStore, subfolder.UID, "sub alert") + // nolint:staticcheck libraryElementCmd.FolderID = parent.ID _, err = lps.LibraryElementService.CreateElement(context.Background(), &signedInUser, libraryElementCmd) require.NoError(t, err) + // nolint:staticcheck libraryElementCmd.FolderID = subfolder.ID _, err = lps.LibraryElementService.CreateElement(context.Background(), &signedInUser, libraryElementCmd) require.NoError(t, err) @@ -496,9 +498,11 @@ func TestIntegrationNestedFolderService(t *testing.T) { _ = createRule(t, alertStore, parent.UID, "parent alert") _ = createRule(t, alertStore, subfolder.UID, "sub alert") + // nolint:staticcheck libraryElementCmd.FolderID = parent.ID _, err = lps.LibraryElementService.CreateElement(context.Background(), &signedInUser, libraryElementCmd) require.NoError(t, err) + // nolint:staticcheck libraryElementCmd.FolderID = subfolder.ID _, err = lps.LibraryElementService.CreateElement(context.Background(), &signedInUser, libraryElementCmd) require.NoError(t, err) @@ -631,11 +635,12 @@ func TestIntegrationNestedFolderService(t *testing.T) { subfolder, err = serviceWithFlagOn.dashboardFolderStore.GetFolderByUID(context.Background(), orgID, ancestorUIDs[1]) require.NoError(t, err) _ = createRule(t, alertStore, subfolder.UID, "sub alert") + // nolint:staticcheck libraryElementCmd.FolderID = subfolder.ID subPanel, err = lps.LibraryElementService.CreateElement(context.Background(), &signedInUser, libraryElementCmd) require.NoError(t, err) } - + // nolint:staticcheck libraryElementCmd.FolderID = parent.ID parentPanel, err := lps.LibraryElementService.CreateElement(context.Background(), &signedInUser, libraryElementCmd) require.NoError(t, err) diff --git a/pkg/services/libraryelements/api.go b/pkg/services/libraryelements/api.go index d3113c48526..213722fd0b0 100644 --- a/pkg/services/libraryelements/api.go +++ b/pkg/services/libraryelements/api.go @@ -62,6 +62,7 @@ func (l *LibraryElementService) createHandler(c *contextmodel.ReqContext) respon if cmd.FolderUID != nil { if *cmd.FolderUID == "" { + // nolint:staticcheck cmd.FolderID = 0 generalFolderUID := ac.GeneralFolderUID cmd.FolderUID = &generalFolderUID @@ -70,6 +71,7 @@ func (l *LibraryElementService) createHandler(c *contextmodel.ReqContext) respon if err != nil || folder == nil { return response.ErrOrFallback(http.StatusBadRequest, "failed to get folder", err) } + // nolint:staticcheck cmd.FolderID = folder.ID } } diff --git a/pkg/services/libraryelements/database.go b/pkg/services/libraryelements/database.go index d3bbd45066f..ef6c44464f1 100644 --- a/pkg/services/libraryelements/database.go +++ b/pkg/services/libraryelements/database.go @@ -175,6 +175,7 @@ func (l *LibraryElementService) createLibraryElement(c context.Context, signedIn return err } } else { + // nolint:staticcheck if err := l.requireEditPermissionsOnFolder(c, signedInUser, cmd.FolderID); err != nil { return err } diff --git a/pkg/services/libraryelements/libraryelements_test.go b/pkg/services/libraryelements/libraryelements_test.go index 38e40479abb..af64578a920 100644 --- a/pkg/services/libraryelements/libraryelements_test.go +++ b/pkg/services/libraryelements/libraryelements_test.go @@ -252,7 +252,7 @@ func getCreateVariableCommand(folderID int64, name string) model.CreateLibraryEl func getCreateCommandWithModel(folderID int64, name string, kind model.LibraryElementKind, byteModel []byte) model.CreateLibraryElementCommand { command := model.CreateLibraryElementCommand{ - FolderID: folderID, + FolderID: folderID, // nolint:staticcheck Name: name, Model: byteModel, Kind: int64(kind), diff --git a/pkg/services/libraryelements/model/model.go b/pkg/services/libraryelements/model/model.go index ea73ab59929..5d8804911e4 100644 --- a/pkg/services/libraryelements/model/model.go +++ b/pkg/services/libraryelements/model/model.go @@ -192,6 +192,8 @@ var ( // swagger:model type CreateLibraryElementCommand struct { // ID of the folder where the library element is stored. + // + // Deprecated: use FolderUID instead FolderID int64 `json:"folderId"` // UID of the folder where the library element is stored. FolderUID *string `json:"folderUid"` diff --git a/pkg/services/librarypanels/librarypanels.go b/pkg/services/librarypanels/librarypanels.go index 163bcf9153e..22de54daadc 100644 --- a/pkg/services/librarypanels/librarypanels.go +++ b/pkg/services/librarypanels/librarypanels.go @@ -164,7 +164,7 @@ func importLibraryPanelsRecursively(c context.Context, service libraryelements.S } var cmd = model.CreateLibraryElementCommand{ - FolderID: folderID, + FolderID: folderID, // nolint:staticcheck Name: name, Model: Model, Kind: int64(model.PanelElement), diff --git a/pkg/services/librarypanels/librarypanels_test.go b/pkg/services/librarypanels/librarypanels_test.go index 2b3bae99b2a..8e61676c9f8 100644 --- a/pkg/services/librarypanels/librarypanels_test.go +++ b/pkg/services/librarypanels/librarypanels_test.go @@ -94,7 +94,7 @@ func TestConnectLibraryPanelsForDashboard(t *testing.T) { scenarioWithLibraryPanel(t, "When an admin tries to store a dashboard with library panels inside and outside of rows, it should connect all", func(t *testing.T, sc scenarioContext) { cmd := model.CreateLibraryElementCommand{ - FolderID: sc.initialResult.Result.FolderID, + FolderID: sc.initialResult.Result.FolderID, // nolint:staticcheck Name: "Outside row", Model: []byte(` { @@ -233,7 +233,7 @@ func TestConnectLibraryPanelsForDashboard(t *testing.T) { scenarioWithLibraryPanel(t, "When an admin tries to store a dashboard with unused/removed library panels, it should disconnect unused/removed library panels", func(t *testing.T, sc scenarioContext) { unused, err := sc.elementService.CreateElement(sc.ctx, sc.user, model.CreateLibraryElementCommand{ - FolderID: sc.folder.ID, + FolderID: sc.folder.ID, // nolint:staticcheck Name: "Unused Libray Panel", Model: []byte(` { @@ -762,7 +762,7 @@ func scenarioWithLibraryPanel(t *testing.T, desc string, fn func(t *testing.T, s testScenario(t, desc, func(t *testing.T, sc scenarioContext) { command := model.CreateLibraryElementCommand{ - FolderID: sc.folder.ID, + FolderID: sc.folder.ID, // nolint:staticcheck Name: "Text - Library Panel", Model: []byte(` { diff --git a/public/api-merged.json b/public/api-merged.json index 25324ec089f..eb2274d65ac 100644 --- a/public/api-merged.json +++ b/public/api-merged.json @@ -13073,7 +13073,7 @@ "type": "object", "properties": { "folderId": { - "description": "ID of the folder where the library element is stored.", + "description": "ID of the folder where the library element is stored.\n\nDeprecated: use FolderUID instead", "type": "integer", "format": "int64" }, diff --git a/public/openapi3.json b/public/openapi3.json index 361cfd8926e..ff42e78e8ed 100644 --- a/public/openapi3.json +++ b/public/openapi3.json @@ -3962,7 +3962,7 @@ "description": "CreateLibraryElementCommand is the command for adding a LibraryElement", "properties": { "folderId": { - "description": "ID of the folder where the library element is stored.", + "description": "ID of the folder where the library element is stored.\n\nDeprecated: use FolderUID instead", "format": "int64", "type": "integer" },