provisioning: simplify db query
the GetProvisionedDashboardQuery wasent used for anything else than check if a dashboard is provisioned or not. So we simplified this query to make it more maintainable.
This commit is contained in:
@@ -93,11 +93,17 @@ func (dr *dashboardServiceImpl) buildSaveDashboardCommand(dto *SaveDashboardDTO,
|
||||
}
|
||||
}
|
||||
|
||||
err := dr.validateDashboardIsNotProvisioned(dash.Id)
|
||||
isDashboardProvisioned := &models.IsDashboardProvisionedQuery{DashboardId: dash.Id}
|
||||
err := bus.Dispatch(isDashboardProvisioned)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if isDashboardProvisioned.Result {
|
||||
return nil, models.ErrDashboardCannotSaveProvisionedDashboard
|
||||
}
|
||||
|
||||
validateBeforeSaveCmd := models.ValidateDashboardBeforeSaveCommand{
|
||||
OrgId: dto.OrgId,
|
||||
Dashboard: dash,
|
||||
@@ -134,23 +140,6 @@ func (dr *dashboardServiceImpl) buildSaveDashboardCommand(dto *SaveDashboardDTO,
|
||||
return cmd, nil
|
||||
}
|
||||
|
||||
func (dr *dashboardServiceImpl) validateDashboardIsNotProvisioned(dashboardId int64) error {
|
||||
dpQuery := &models.GetProvisionedDashboardByDashboardId{DashboardId: dashboardId}
|
||||
err := bus.Dispatch(dpQuery)
|
||||
|
||||
// provisioned dashboards cannot be saved. So we can only save
|
||||
// this dashboard if ErrDashboardProvisioningDoesNotExist is returned
|
||||
if err != nil && err != models.ErrDashboardProvisioningDoesNotExist {
|
||||
return err
|
||||
}
|
||||
|
||||
if err == nil {
|
||||
return models.ErrDashboardCannotSaveProvisionedDashboard
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (dr *dashboardServiceImpl) updateAlerting(cmd *models.SaveDashboardCommand, dto *SaveDashboardDTO) error {
|
||||
alertCmd := models.UpdateDashboardAlertsCommand{
|
||||
OrgId: dto.OrgId,
|
||||
|
||||
@@ -56,8 +56,9 @@ func TestDashboardService(t *testing.T) {
|
||||
return nil
|
||||
})
|
||||
|
||||
bus.AddHandler("test", func(cmd *models.GetProvisionedDashboardByDashboardId) error {
|
||||
return models.ErrDashboardProvisioningDoesNotExist
|
||||
bus.AddHandler("test", func(cmd *models.IsDashboardProvisionedQuery) error {
|
||||
cmd.Result = false
|
||||
return nil
|
||||
})
|
||||
|
||||
testCases := []struct {
|
||||
@@ -84,8 +85,8 @@ func TestDashboardService(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Should return validation error if dashboard is provisioned", func() {
|
||||
bus.AddHandler("test", func(cmd *models.GetProvisionedDashboardByDashboardId) error {
|
||||
cmd.Result = &models.DashboardProvisioning{}
|
||||
bus.AddHandler("test", func(cmd *models.IsDashboardProvisionedQuery) error {
|
||||
cmd.Result = true
|
||||
return nil
|
||||
})
|
||||
|
||||
@@ -105,8 +106,9 @@ func TestDashboardService(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Should return validation error if alert data is invalid", func() {
|
||||
bus.AddHandler("test", func(cmd *models.GetProvisionedDashboardByDashboardId) error {
|
||||
return models.ErrDashboardProvisioningDoesNotExist
|
||||
bus.AddHandler("test", func(cmd *models.IsDashboardProvisionedQuery) error {
|
||||
cmd.Result = false
|
||||
return nil
|
||||
})
|
||||
|
||||
bus.AddHandler("test", func(cmd *models.ValidateDashboardAlertsCommand) error {
|
||||
|
||||
Reference in New Issue
Block a user