mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
PublicDashboards: Return no data found instead of internal server error (#74417)
This commit is contained in:
parent
d2154387d8
commit
733044ee4b
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user