diff --git a/pkg/services/publicdashboards/service/service.go b/pkg/services/publicdashboards/service/service.go index 2ab7b16c5bb..a091e33931b 100644 --- a/pkg/services/publicdashboards/service/service.go +++ b/pkg/services/publicdashboards/service/service.go @@ -226,14 +226,10 @@ func (pd *PublicDashboardServiceImpl) Update(ctx context.Context, u *user.Signed return nil, err } - // validate if the dashboard exists - dashboard, err := pd.FindDashboard(ctx, u.OrgID, dto.DashboardUid) + // validate dashboard exists + _, err = pd.FindDashboard(ctx, u.OrgID, dto.DashboardUid) if err != nil { - return nil, ErrInternalServerError.Errorf("Update: failed to find dashboard by orgId: %d and dashboardUid: %s: %w", u.OrgID, dto.DashboardUid, err) - } - - if dashboard == nil { - return nil, ErrDashboardNotFound.Errorf("Update: dashboard not found by orgId: %d and dashboardUid: %s", u.OrgID, dto.DashboardUid) + return nil, err } // get existing public dashboard if exists diff --git a/pkg/services/publicdashboards/service/service_test.go b/pkg/services/publicdashboards/service/service_test.go index dd8c031b7fe..dd2fa4fe6f4 100644 --- a/pkg/services/publicdashboards/service/service_test.go +++ b/pkg/services/publicdashboards/service/service_test.go @@ -32,6 +32,7 @@ import ( "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/tsdb/intervalv2" "github.com/grafana/grafana/pkg/util" + "github.com/grafana/grafana/pkg/util/errutil" ) var timeSettings = &TimeSettings{From: "now-12h", To: "now"} @@ -1161,6 +1162,23 @@ func TestUpdatePublicDashboard(t *testing.T) { assert.Error(t, err) }) + t.Run("Updating not existent dashboard", func(t *testing.T) { + dto := &SavePublicDashboardDTO{ + DashboardUid: "NOTEXISTENTDASHBOARD", + UserId: 7, + PublicDashboard: &PublicDashboardDTO{}, + } + + updatedPubdash, err := service.Update(context.Background(), SignedInUser, dto) + assert.Error(t, err) + + var grafanaErr errutil.Error + ok := errors.As(err, &grafanaErr) + assert.True(t, ok) + assert.Equal(t, "publicdashboards.dashboardNotFound", grafanaErr.MessageID) + assert.Empty(t, updatedPubdash) + }) + trueBooleanField := true timeSettings := &TimeSettings{From: "now-8", To: "now"} shareType := EmailShareType