PublicDashboards: refactor following naming convention for services (#57625)

This commit is contained in:
Ezequiel Victorero 2022-10-25 21:40:42 -03:00 committed by GitHub
parent 5879805e4b
commit 860380d893
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 247 additions and 245 deletions

View File

@ -104,7 +104,7 @@ func (hs *HTTPServer) GetDashboard(c *models.ReqContext) response.Response {
err error
)
if hs.Features.IsEnabled(featuremgmt.FlagPublicDashboards) {
hasPublicDashboard, err = hs.PublicDashboardsApi.PublicDashboardService.PublicDashboardIsEnabled(c.Req.Context(), dash.Uid)
hasPublicDashboard, err = hs.PublicDashboardsApi.PublicDashboardService.ExistsEnabledByDashboardUid(c.Req.Context(), dash.Uid)
if err != nil {
return response.Error(500, "Error while retrieving public dashboards", err)
}

View File

@ -257,9 +257,9 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
AccessToken: "an-access-token",
},
}
err := publicDashboardStore.SavePublicDashboard(context.Background(), cmd)
err := publicDashboardStore.Save(context.Background(), cmd)
require.NoError(t, err)
pubdashConfig, _, _ := publicDashboardStore.GetPublicDashboardAndDashboard(context.Background(), "an-access-token")
pubdashConfig, _, _ := publicDashboardStore.FindPublicDashboardAndDashboardByAccessToken(context.Background(), "an-access-token")
require.NotNil(t, pubdashConfig)
deleteCmd := &models.DeleteDashboardCommand{Id: savedDash.Id, OrgId: savedDash.OrgId}
@ -271,7 +271,7 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
require.Equal(t, getErr, dashboards.ErrDashboardNotFound)
assert.Nil(t, dash)
pubdashConfig, _, err = publicDashboardStore.GetPublicDashboardAndDashboard(context.Background(), "an-access-token")
pubdashConfig, _, err = publicDashboardStore.FindPublicDashboardAndDashboardByAccessToken(context.Background(), "an-access-token")
require.Equal(t, err, publicDashboardModels.ErrPublicDashboardNotFound)
require.Nil(t, pubdashConfig)
})
@ -292,9 +292,9 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
AccessToken: "an-access-token",
},
}
err := publicDashboardStore.SavePublicDashboard(context.Background(), cmd)
err := publicDashboardStore.Save(context.Background(), cmd)
require.NoError(t, err)
pubdashConfig, _, _ := publicDashboardStore.GetPublicDashboardAndDashboard(context.Background(), "an-access-token")
pubdashConfig, _, _ := publicDashboardStore.FindPublicDashboardAndDashboardByAccessToken(context.Background(), "an-access-token")
require.NotNil(t, pubdashConfig)
deleteCmd := &models.DeleteDashboardCommand{Id: savedFolder.Id, ForceDeleteFolderRules: true}
@ -308,7 +308,7 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
require.NoError(t, err)
require.Equal(t, len(query.Result), 0)
pubdashConfig, _, err = publicDashboardStore.GetPublicDashboardAndDashboard(context.Background(), "an-access-token")
pubdashConfig, _, err = publicDashboardStore.FindPublicDashboardAndDashboardByAccessToken(context.Background(), "an-access-token")
require.Equal(t, err, publicDashboardModels.ErrPublicDashboardNotFound)
require.Nil(t, pubdashConfig)
})

View File

@ -89,7 +89,7 @@ func (api *Api) GetPublicDashboard(c *models.ReqContext) response.Response {
return response.Error(http.StatusBadRequest, "Invalid Access Token", nil)
}
pubdash, dash, err := api.PublicDashboardService.GetPublicDashboardAndDashboard(
pubdash, dash, err := api.PublicDashboardService.FindPublicDashboardAndDashboardByAccessToken(
c.Req.Context(),
accessToken,
)
@ -122,7 +122,7 @@ func (api *Api) GetPublicDashboard(c *models.ReqContext) response.Response {
// ListPublicDashboards Gets list of public dashboards for an org
// GET /api/dashboards/public
func (api *Api) ListPublicDashboards(c *models.ReqContext) response.Response {
resp, err := api.PublicDashboardService.ListPublicDashboards(c.Req.Context(), c.SignedInUser, c.OrgID)
resp, err := api.PublicDashboardService.FindAll(c.Req.Context(), c.SignedInUser, c.OrgID)
if err != nil {
return api.handleError(c.Req.Context(), http.StatusInternalServerError, "ListPublicDashboards: failed to list public dashboards", err)
}
@ -132,7 +132,7 @@ func (api *Api) ListPublicDashboards(c *models.ReqContext) response.Response {
// GetPublicDashboardConfig Gets public dashboard configuration for dashboard
// GET /api/dashboards/uid/:uid/public-config
func (api *Api) GetPublicDashboardConfig(c *models.ReqContext) response.Response {
pdc, err := api.PublicDashboardService.GetPublicDashboard(c.Req.Context(), c.OrgID, web.Params(c.Req)[":uid"])
pdc, err := api.PublicDashboardService.FindByDashboardUid(c.Req.Context(), c.OrgID, web.Params(c.Req)[":uid"])
if err != nil {
return api.handleError(c.Req.Context(), http.StatusInternalServerError, "GetPublicDashboardConfig: failed to get public dashboard config", err)
}
@ -163,7 +163,7 @@ func (api *Api) SavePublicDashboardConfig(c *models.ReqContext) response.Respons
}
// Save the public dashboard
pubdash, err := api.PublicDashboardService.SavePublicDashboard(c.Req.Context(), c.SignedInUser, &dto)
pubdash, err := api.PublicDashboardService.Save(c.Req.Context(), c.SignedInUser, &dto)
if err != nil {
return api.handleError(c.Req.Context(), http.StatusInternalServerError, "SavePublicDashboardConfig: failed to save public dashboard configuration", err)
}
@ -210,7 +210,7 @@ func (api *Api) GetAnnotations(c *models.ReqContext) response.Response {
To: c.QueryInt64("to"),
}
annotations, err := api.PublicDashboardService.GetAnnotations(c.Req.Context(), reqDTO, accessToken)
annotations, err := api.PublicDashboardService.FindAnnotations(c.Req.Context(), reqDTO, accessToken)
if err != nil {
return api.handleError(c.Req.Context(), http.StatusInternalServerError, "error getting public dashboard annotations", err)

View File

@ -99,7 +99,7 @@ func TestAPIGetAnnotations(t *testing.T) {
service := publicdashboards.NewFakePublicDashboardService(t)
if test.ExpectedServiceCalled {
service.On("GetAnnotations", mock.Anything, mock.Anything, mock.AnythingOfType("string")).
service.On("FindAnnotations", mock.Anything, mock.Anything, mock.AnythingOfType("string")).
Return(test.Annotations, test.ServiceError).Once()
}
@ -209,7 +209,7 @@ func TestAPIListPublicDashboard(t *testing.T) {
for _, test := range testCases {
t.Run(test.Name, func(t *testing.T) {
service := publicdashboards.NewFakePublicDashboardService(t)
service.On("ListPublicDashboards", mock.Anything, mock.Anything, mock.Anything).
service.On("FindAll", mock.Anything, mock.Anything, mock.Anything).
Return(test.Response, test.ResponseErr).Maybe()
cfg := setting.NewCfg()
@ -232,7 +232,7 @@ func TestAPIListPublicDashboard(t *testing.T) {
err := json.Unmarshal(response.Body.Bytes(), &errResp)
require.NoError(t, err)
assert.Equal(t, "error, service broken", errResp.Error)
service.AssertNotCalled(t, "ListPublicDashboards")
service.AssertNotCalled(t, "FindAll")
}
})
}
@ -282,7 +282,7 @@ func TestAPIGetPublicDashboard(t *testing.T) {
for _, test := range testCases {
t.Run(test.Name, func(t *testing.T) {
service := publicdashboards.NewFakePublicDashboardService(t)
service.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).
service.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.AnythingOfType("string")).
Return(&PublicDashboard{}, test.DashboardResult, test.Err).Maybe()
cfg := setting.NewCfg()
@ -396,7 +396,7 @@ func TestAPIGetPublicDashboardConfig(t *testing.T) {
service := publicdashboards.NewFakePublicDashboardService(t)
if test.ShouldCallService {
service.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("int64"), mock.AnythingOfType("string")).
service.On("FindByDashboardUid", mock.Anything, mock.AnythingOfType("int64"), mock.AnythingOfType("string")).
Return(test.PublicDashboardResult, test.PublicDashboardErr)
}
@ -507,7 +507,7 @@ func TestApiSavePublicDashboardConfig(t *testing.T) {
// this is to avoid AssertExpectations fail at t.Cleanup when the middleware returns before calling the service
if test.ShouldCallService {
service.On("SavePublicDashboard", mock.Anything, mock.Anything, mock.AnythingOfType("*models.SavePublicDashboardConfigDTO")).
service.On("Save", mock.Anything, mock.Anything, mock.AnythingOfType("*models.SavePublicDashboardConfigDTO")).
Return(&PublicDashboard{IsEnabled: true}, test.SaveDashboardErr)
}
@ -732,7 +732,7 @@ func TestIntegrationUnauthenticatedUserCanGetPubdashPanelQueryData(t *testing.T)
ac := acmock.New()
cfg.RBACEnabled = false
service := publicdashboardsService.ProvideService(cfg, store, qds, annotationsService, ac)
pubdash, err := service.SavePublicDashboard(context.Background(), &user.SignedInUser{}, savePubDashboardCmd)
pubdash, err := service.Save(context.Background(), &user.SignedInUser{}, savePubDashboardCmd)
require.NoError(t, err)
// setup test server

View File

@ -19,7 +19,7 @@ func SetPublicDashboardOrgIdOnContext(publicDashboardService publicdashboards.Se
}
// Get public dashboard
orgId, err := publicDashboardService.GetPublicDashboardOrgId(c.Req.Context(), accessToken)
orgId, err := publicDashboardService.GetOrgIdByAccessToken(c.Req.Context(), accessToken)
if err != nil {
return
}
@ -50,7 +50,7 @@ func RequiresExistingAccessToken(publicDashboardService publicdashboards.Service
}
// Check that the access token references an enabled public dashboard
exists, err := publicDashboardService.PublicDashboardEnabledExistsByAccessToken(c.Req.Context(), accessToken)
exists, err := publicDashboardService.ExistsEnabledByAccessToken(c.Req.Context(), accessToken)
if err != nil {
c.JsonApiErr(http.StatusInternalServerError, "Failed to query access token", nil)
return

View File

@ -74,7 +74,7 @@ func TestRequiresExistingAccessToken(t *testing.T) {
for _, tt := range tests {
t.Run(tt.Name, func(t *testing.T) {
publicdashboardService := &publicdashboards.FakePublicDashboardService{}
publicdashboardService.On("PublicDashboardEnabledExistsByAccessToken", mock.Anything, mock.Anything).Return(tt.AccessTokenExists, tt.AccessTokenExistsErr)
publicdashboardService.On("ExistsEnabledByAccessToken", mock.Anything, mock.Anything).Return(tt.AccessTokenExists, tt.AccessTokenExistsErr)
params := map[string]string{":accessToken": tt.AccessToken}
mw := RequiresExistingAccessToken(publicdashboardService)
_, resp := runMw(t, nil, "GET", tt.Path, params, mw)
@ -131,7 +131,7 @@ func TestSetPublicDashboardOrgIdOnContext(t *testing.T) {
for _, tt := range tests {
t.Run(tt.Name, func(t *testing.T) {
publicdashboardService := &publicdashboards.FakePublicDashboardService{}
publicdashboardService.On("GetPublicDashboardOrgId", mock.Anything, tt.AccessToken).Return(
publicdashboardService.On("GetOrgIdByAccessToken", mock.Anything, tt.AccessToken).Return(
tt.OrgIdResp,
tt.ErrorResp,
)

View File

@ -34,7 +34,7 @@ func ProvideStore(sqlStore db.DB) *PublicDashboardStoreImpl {
}
// Gets list of public dashboards by orgId
func (d *PublicDashboardStoreImpl) ListPublicDashboards(ctx context.Context, orgId int64) ([]PublicDashboardListResponse, error) {
func (d *PublicDashboardStoreImpl) FindAll(ctx context.Context, orgId int64) ([]PublicDashboardListResponse, error) {
resp := make([]PublicDashboardListResponse, 0)
err := d.sqlStore.WithTransactionalDbSession(ctx, func(sess *db.Session) error {
@ -55,7 +55,7 @@ func (d *PublicDashboardStoreImpl) ListPublicDashboards(ctx context.Context, org
return resp, nil
}
func (d *PublicDashboardStoreImpl) GetDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error) {
func (d *PublicDashboardStoreImpl) FindDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error) {
dashboard := &models.Dashboard{Uid: dashboardUid}
err := d.sqlStore.WithTransactionalDbSession(ctx, func(sess *db.Session) error {
has, err := sess.Get(dashboard)
@ -71,9 +71,9 @@ func (d *PublicDashboardStoreImpl) GetDashboard(ctx context.Context, dashboardUi
return dashboard, err
}
// GetPublicDashboardAndDashboard Retrieves public dashboard. This method makes 2 queries to the db so that in the
// FindPublicDashboardAndDashboardByAccessToken Retrieves public dashboard. This method makes 2 queries to the db so that in the
// even that the underlying dashboard is missing it will return a 404.
func (d *PublicDashboardStoreImpl) GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error) {
func (d *PublicDashboardStoreImpl) FindPublicDashboardAndDashboardByAccessToken(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error) {
if accessToken == "" {
return nil, nil, ErrPublicDashboardIdentifierNotSet
}
@ -96,7 +96,7 @@ func (d *PublicDashboardStoreImpl) GetPublicDashboardAndDashboard(ctx context.Co
}
// find dashboard
dashRes, err := d.GetDashboard(ctx, pdRes.DashboardUid)
dashRes, err := d.FindDashboard(ctx, pdRes.DashboardUid)
if err != nil {
return nil, nil, err
}
@ -104,8 +104,8 @@ func (d *PublicDashboardStoreImpl) GetPublicDashboardAndDashboard(ctx context.Co
return pdRes, dashRes, err
}
// GetPublicDashboardByUid Returns public dashboard configuration by Uid or nil if not found
func (d *PublicDashboardStoreImpl) GetPublicDashboardByUid(ctx context.Context, uid string) (*PublicDashboard, error) {
// Find Returns public dashboard configuration by Uid or nil if not found
func (d *PublicDashboardStoreImpl) Find(ctx context.Context, uid string) (*PublicDashboard, error) {
if uid == "" {
return nil, nil
}
@ -130,7 +130,7 @@ func (d *PublicDashboardStoreImpl) GetPublicDashboardByUid(ctx context.Context,
}
// GetPublicDashboardByAccessToken Returns public dashboard by access token or nil if not found
func (d *PublicDashboardStoreImpl) GetPublicDashboardByAccessToken(ctx context.Context, accessToken string) (*PublicDashboard, error) {
func (d *PublicDashboardStoreImpl) FindByAccessToken(ctx context.Context, accessToken string) (*PublicDashboard, error) {
if accessToken == "" {
return nil, ErrPublicDashboardIdentifierNotSet
}
@ -154,8 +154,8 @@ func (d *PublicDashboardStoreImpl) GetPublicDashboardByAccessToken(ctx context.C
return pdRes, err
}
// Retrieves public dashboard configuration
func (d *PublicDashboardStoreImpl) GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error) {
// FindByDashboardUid Retrieves public dashboard configuration by dashboard uid
func (d *PublicDashboardStoreImpl) FindByDashboardUid(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error) {
if dashboardUid == "" {
return nil, dashboards.ErrDashboardIdentifierNotSet
}
@ -179,7 +179,7 @@ func (d *PublicDashboardStoreImpl) GetPublicDashboard(ctx context.Context, orgId
}
// Persists public dashboard configuration
func (d *PublicDashboardStoreImpl) SavePublicDashboard(ctx context.Context, cmd SavePublicDashboardConfigCommand) error {
func (d *PublicDashboardStoreImpl) Save(ctx context.Context, cmd SavePublicDashboardConfigCommand) error {
if cmd.PublicDashboard.DashboardUid == "" {
return dashboards.ErrDashboardIdentifierNotSet
}
@ -196,8 +196,8 @@ func (d *PublicDashboardStoreImpl) SavePublicDashboard(ctx context.Context, cmd
return err
}
// Updates existing public dashboard configuration
func (d *PublicDashboardStoreImpl) UpdatePublicDashboard(ctx context.Context, cmd SavePublicDashboardConfigCommand) error {
// Update updates existing public dashboard configuration
func (d *PublicDashboardStoreImpl) Update(ctx context.Context, cmd SavePublicDashboardConfigCommand) error {
err := d.sqlStore.WithTransactionalDbSession(ctx, func(sess *db.Session) error {
timeSettingsJSON, err := json.Marshal(cmd.PublicDashboard.TimeSettings)
if err != nil {
@ -222,8 +222,8 @@ func (d *PublicDashboardStoreImpl) UpdatePublicDashboard(ctx context.Context, cm
return err
}
// EnabledPublicDashboardExistsByDashboardUid Responds true if there is an enabled public dashboard for a dashboard uid
func (d *PublicDashboardStoreImpl) PublicDashboardEnabledExistsByDashboardUid(ctx context.Context, dashboardUid string) (bool, error) {
// ExistsEnabledByDashboardUid Responds true if there is an enabled public dashboard for a dashboard uid
func (d *PublicDashboardStoreImpl) ExistsEnabledByDashboardUid(ctx context.Context, dashboardUid string) (bool, error) {
hasPublicDashboard := false
err := d.sqlStore.WithDbSession(ctx, func(dbSession *db.Session) error {
sql := "SELECT COUNT(*) FROM dashboard_public WHERE dashboard_uid=? AND is_enabled=true"
@ -240,8 +240,8 @@ func (d *PublicDashboardStoreImpl) PublicDashboardEnabledExistsByDashboardUid(ct
return hasPublicDashboard, err
}
// EnabledPublicDashboardExistsByAccessToken Responds true if accessToken exists and isEnabled
func (d *PublicDashboardStoreImpl) PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error) {
// ExistsEnabledByAccessToken Responds true if the accessToken exists and the public dashboard is enabled
func (d *PublicDashboardStoreImpl) ExistsEnabledByAccessToken(ctx context.Context, accessToken string) (bool, error) {
hasPublicDashboard := false
err := d.sqlStore.WithDbSession(ctx, func(dbSession *db.Session) error {
sql := "SELECT COUNT(*) FROM dashboard_public WHERE access_token=? AND is_enabled=true"
@ -258,8 +258,8 @@ func (d *PublicDashboardStoreImpl) PublicDashboardEnabledExistsByAccessToken(ctx
return hasPublicDashboard, err
}
// Responds with OrgId from if exists and isEnabled.
func (d *PublicDashboardStoreImpl) GetPublicDashboardOrgId(ctx context.Context, accessToken string) (int64, error) {
// GetOrgIdByAccessToken Returns the public dashboard OrgId if exists and is enabled.
func (d *PublicDashboardStoreImpl) GetOrgIdByAccessToken(ctx context.Context, accessToken string) (int64, error) {
var orgId int64
err := d.sqlStore.WithDbSession(ctx, func(dbSession *db.Session) error {
sql := "SELECT org_id FROM dashboard_public WHERE access_token=? AND is_enabled=true"

View File

@ -55,7 +55,7 @@ func TestIntegrationListPublicDashboard(t *testing.T) {
// should not be included in response
_ = insertPublicDashboard(t, publicdashboardStore, "wrongOrgId", 777, false)
resp, err := publicdashboardStore.ListPublicDashboards(context.Background(), orgId)
resp, err := publicdashboardStore.FindAll(context.Background(), orgId)
require.NoError(t, err)
assert.Len(t, resp, 3)
@ -64,7 +64,7 @@ func TestIntegrationListPublicDashboard(t *testing.T) {
assert.Equal(t, resp[2].Uid, c.Uid)
}
func TestIntegrationGetDashboard(t *testing.T) {
func TestIntegrationFindDashboard(t *testing.T) {
var sqlStore db.DB
var cfg *setting.Cfg
var dashboardStore *dashboardsDB.DashboardStore
@ -78,17 +78,17 @@ func TestIntegrationGetDashboard(t *testing.T) {
savedDashboard = insertTestDashboard(t, dashboardStore, "testDashie", 1, 0, true)
}
t.Run("GetDashboard can get original dashboard by uid", func(t *testing.T) {
t.Run("FindDashboard can get original dashboard by uid", func(t *testing.T) {
setup()
dashboard, err := publicdashboardStore.GetDashboard(context.Background(), savedDashboard.Uid)
dashboard, err := publicdashboardStore.FindDashboard(context.Background(), savedDashboard.Uid)
require.NoError(t, err)
require.Equal(t, savedDashboard.Uid, dashboard.Uid)
})
}
func TestIntegrationEnabledPublicDashboardExistsByAccessToken(t *testing.T) {
func TestIntegrationExistsEnabledByAccessToken(t *testing.T) {
var sqlStore db.DB
var cfg *setting.Cfg
var dashboardStore *dashboardsDB.DashboardStore
@ -101,10 +101,10 @@ func TestIntegrationEnabledPublicDashboardExistsByAccessToken(t *testing.T) {
publicdashboardStore = ProvideStore(sqlStore)
savedDashboard = insertTestDashboard(t, dashboardStore, "testDashie", 1, 0, true)
}
t.Run("PublicDashboardEnabledExistsByAccessToken will return true when at least one public dashboard has a matching access token", func(t *testing.T) {
t.Run("ExistsEnabledByAccessToken will return true when at least one public dashboard has a matching access token", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: true,
Uid: "abc123",
@ -117,16 +117,16 @@ func TestIntegrationEnabledPublicDashboardExistsByAccessToken(t *testing.T) {
})
require.NoError(t, err)
res, err := publicdashboardStore.PublicDashboardEnabledExistsByAccessToken(context.Background(), "accessToken")
res, err := publicdashboardStore.ExistsEnabledByAccessToken(context.Background(), "accessToken")
require.NoError(t, err)
require.True(t, res)
})
t.Run("PublicDashboardEnabledExistsByAccessToken will return false when IsEnabled=false", func(t *testing.T) {
t.Run("ExistsEnabledByAccessToken will return false when IsEnabled=false", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: false,
Uid: "abc123",
@ -139,23 +139,23 @@ func TestIntegrationEnabledPublicDashboardExistsByAccessToken(t *testing.T) {
})
require.NoError(t, err)
res, err := publicdashboardStore.PublicDashboardEnabledExistsByAccessToken(context.Background(), "accessToken")
res, err := publicdashboardStore.ExistsEnabledByAccessToken(context.Background(), "accessToken")
require.NoError(t, err)
require.False(t, res)
})
t.Run("PublicDashboardEnabledExistsByAccessToken will return false when no public dashboard has matching access token", func(t *testing.T) {
t.Run("ExistsEnabledByAccessToken will return false when no public dashboard has matching access token", func(t *testing.T) {
setup()
res, err := publicdashboardStore.PublicDashboardEnabledExistsByAccessToken(context.Background(), "accessToken")
res, err := publicdashboardStore.ExistsEnabledByAccessToken(context.Background(), "accessToken")
require.NoError(t, err)
require.False(t, res)
})
}
func TestIntegrationEnabledPublicDashboardExistsByDashboardUid(t *testing.T) {
func TestIntegrationExistsEnabledByDashboardUid(t *testing.T) {
var sqlStore db.DB
var cfg *setting.Cfg
var dashboardStore *dashboardsDB.DashboardStore
@ -169,10 +169,10 @@ func TestIntegrationEnabledPublicDashboardExistsByDashboardUid(t *testing.T) {
savedDashboard = insertTestDashboard(t, dashboardStore, "testDashie", 1, 0, true)
}
t.Run("PublicDashboardEnabledExistsByDashboardUid Will return true when dashboard has at least one enabled public dashboard", func(t *testing.T) {
t.Run("ExistsEnabledByDashboardUid Will return true when dashboard has at least one enabled public dashboard", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: true,
Uid: "abc123",
@ -185,16 +185,16 @@ func TestIntegrationEnabledPublicDashboardExistsByDashboardUid(t *testing.T) {
})
require.NoError(t, err)
res, err := publicdashboardStore.PublicDashboardEnabledExistsByDashboardUid(context.Background(), savedDashboard.Uid)
res, err := publicdashboardStore.ExistsEnabledByDashboardUid(context.Background(), savedDashboard.Uid)
require.NoError(t, err)
require.True(t, res)
})
t.Run("PublicDashboardEnabledExistsByDashboardUid will return false when dashboard has public dashboards but they are not enabled", func(t *testing.T) {
t.Run("ExistsEnabledByDashboardUid will return false when dashboard has public dashboards but they are not enabled", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: false,
Uid: "abc123",
@ -207,14 +207,14 @@ func TestIntegrationEnabledPublicDashboardExistsByDashboardUid(t *testing.T) {
})
require.NoError(t, err)
res, err := publicdashboardStore.PublicDashboardEnabledExistsByDashboardUid(context.Background(), savedDashboard.Uid)
res, err := publicdashboardStore.ExistsEnabledByDashboardUid(context.Background(), savedDashboard.Uid)
require.NoError(t, err)
require.False(t, res)
})
}
func TestIntegrationGetPublicDashboardAndDashboard(t *testing.T) {
func TestIntegrationFindPublicDashboardAndDashboardByAccessToken(t *testing.T) {
var sqlStore db.DB
var cfg *setting.Cfg
var dashboardStore *dashboardsDB.DashboardStore
@ -244,10 +244,10 @@ func TestIntegrationGetPublicDashboardAndDashboard(t *testing.T) {
},
}
err := publicdashboardStore.SavePublicDashboard(context.Background(), cmd)
err := publicdashboardStore.Save(context.Background(), cmd)
require.NoError(t, err)
pd, d, err := publicdashboardStore.GetPublicDashboardAndDashboard(context.Background(), "NOTAREALUUID")
pd, d, err := publicdashboardStore.FindPublicDashboardAndDashboardByAccessToken(context.Background(), "NOTAREALUUID")
require.NoError(t, err)
assert.Equal(t, pd, &cmd.PublicDashboard)
@ -256,19 +256,19 @@ func TestIntegrationGetPublicDashboardAndDashboard(t *testing.T) {
t.Run("returns ErrPublicDashboardNotFound with empty uid", func(t *testing.T) {
setup()
_, _, err := publicdashboardStore.GetPublicDashboardAndDashboard(context.Background(), "")
_, _, err := publicdashboardStore.FindPublicDashboardAndDashboardByAccessToken(context.Background(), "")
require.Error(t, ErrPublicDashboardIdentifierNotSet, err)
})
t.Run("returns ErrPublicDashboardNotFound when PublicDashboard not found", func(t *testing.T) {
setup()
_, _, err := publicdashboardStore.GetPublicDashboardAndDashboard(context.Background(), "zzzzzz")
_, _, err := publicdashboardStore.FindPublicDashboardAndDashboardByAccessToken(context.Background(), "zzzzzz")
require.Error(t, ErrPublicDashboardNotFound, err)
})
t.Run("returns ErrDashboardNotFound when Dashboard not found", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: true,
Uid: "abc1234",
@ -279,12 +279,12 @@ func TestIntegrationGetPublicDashboardAndDashboard(t *testing.T) {
},
})
require.NoError(t, err)
_, _, err = publicdashboardStore.GetPublicDashboardAndDashboard(context.Background(), "abc1234")
_, _, err = publicdashboardStore.FindPublicDashboardAndDashboardByAccessToken(context.Background(), "abc1234")
require.Error(t, dashboards.ErrDashboardNotFound, err)
})
}
func TestIntegrationGetPublicDashboard(t *testing.T) {
func TestIntegrationFindByDashboardUid(t *testing.T) {
var sqlStore db.DB
var cfg *setting.Cfg
var dashboardStore *dashboardsDB.DashboardStore
@ -300,14 +300,14 @@ func TestIntegrationGetPublicDashboard(t *testing.T) {
t.Run("returns isPublic and set dashboardUid and orgId", func(t *testing.T) {
setup()
pubdash, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
pubdash, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
require.NoError(t, err)
assert.Equal(t, &PublicDashboard{IsEnabled: false, DashboardUid: savedDashboard.Uid, OrgId: savedDashboard.OrgId}, pubdash)
})
t.Run("returns dashboard errDashboardIdentifierNotSet", func(t *testing.T) {
setup()
_, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, "")
_, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard.OrgId, "")
require.Error(t, dashboards.ErrDashboardIdentifierNotSet, err)
})
@ -326,11 +326,11 @@ func TestIntegrationGetPublicDashboard(t *testing.T) {
}
// insert test public dashboard
err := publicdashboardStore.SavePublicDashboard(context.Background(), cmd)
err := publicdashboardStore.Save(context.Background(), cmd)
require.NoError(t, err)
// retrieve from db
pubdash, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
pubdash, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
require.NoError(t, err)
assert.True(t, assert.ObjectsAreEqualValues(&cmd.PublicDashboard, pubdash))
@ -355,7 +355,7 @@ func TestIntegrationSavePublicDashboard(t *testing.T) {
t.Run("saves new public dashboard", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: true,
AnnotationsEnabled: true,
@ -370,21 +370,21 @@ func TestIntegrationSavePublicDashboard(t *testing.T) {
})
require.NoError(t, err)
pubdash, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
pubdash, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
require.NoError(t, err)
// verify we have a valid uid
assert.True(t, util.IsValidShortUID(pubdash.Uid))
// verify we didn't update all dashboards
pubdash2, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard2.OrgId, savedDashboard2.Uid)
pubdash2, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard2.OrgId, savedDashboard2.Uid)
require.NoError(t, err)
assert.False(t, pubdash2.IsEnabled)
})
t.Run("guards from saving without dashboardUid", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: true,
Uid: "pubdash-uid",
@ -420,7 +420,7 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) {
setup()
pdUid := "asdf1234"
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
Uid: pdUid,
DashboardUid: savedDashboard.Uid,
@ -436,7 +436,7 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) {
// inserting two different public dashboards to test update works and only affect the desired pd by uid
anotherPdUid := "anotherUid"
err = publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err = publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
Uid: anotherPdUid,
DashboardUid: anotherSavedDashboard.Uid,
@ -461,23 +461,23 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) {
UpdatedBy: 8,
}
// update initial record
err = publicdashboardStore.UpdatePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err = publicdashboardStore.Update(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: updatedPublicDashboard,
})
require.NoError(t, err)
// updated dashboard should have changed
pdRetrieved, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
pdRetrieved, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
require.NoError(t, err)
assert.Equal(t, updatedPublicDashboard.UpdatedAt, pdRetrieved.UpdatedAt)
// make sure we're correctly updated IsEnabled because we have to call
// make sure we're correctly updated ExistsEnabledByDashboardUid because we have to call
// UseBool with xorm
assert.Equal(t, updatedPublicDashboard.IsEnabled, pdRetrieved.IsEnabled)
assert.Equal(t, updatedPublicDashboard.AnnotationsEnabled, pdRetrieved.AnnotationsEnabled)
// not updated dashboard shouldn't have changed
pdNotUpdatedRetrieved, err := publicdashboardStore.GetPublicDashboard(context.Background(), anotherSavedDashboard.OrgId, anotherSavedDashboard.Uid)
pdNotUpdatedRetrieved, err := publicdashboardStore.FindByDashboardUid(context.Background(), anotherSavedDashboard.OrgId, anotherSavedDashboard.Uid)
require.NoError(t, err)
assert.NotEqual(t, updatedPublicDashboard.UpdatedAt, pdNotUpdatedRetrieved.UpdatedAt)
assert.NotEqual(t, updatedPublicDashboard.IsEnabled, pdNotUpdatedRetrieved.IsEnabled)
@ -485,8 +485,7 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) {
})
}
// GetPublicDashboardOrgId
func TestIntegrationGetPublicDashboardOrgId(t *testing.T) {
func TestIntegrationGetOrgIdByAccessToken(t *testing.T) {
var sqlStore db.DB
var cfg *setting.Cfg
var dashboardStore *dashboardsDB.DashboardStore
@ -499,10 +498,10 @@ func TestIntegrationGetPublicDashboardOrgId(t *testing.T) {
publicdashboardStore = ProvideStore(sqlStore)
savedDashboard = insertTestDashboard(t, dashboardStore, "testDashie", 1, 0, true)
}
t.Run("GetPublicDashboardOrgId will OrgId when enabled", func(t *testing.T) {
t.Run("GetOrgIdByAccessToken will OrgId when enabled", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: true,
Uid: "abc123",
@ -515,16 +514,16 @@ func TestIntegrationGetPublicDashboardOrgId(t *testing.T) {
})
require.NoError(t, err)
orgId, err := publicdashboardStore.GetPublicDashboardOrgId(context.Background(), "accessToken")
orgId, err := publicdashboardStore.GetOrgIdByAccessToken(context.Background(), "accessToken")
require.NoError(t, err)
assert.Equal(t, savedDashboard.OrgId, orgId)
})
t.Run("GetPublicDashboardOrgId will return 0 when IsEnabled=false", func(t *testing.T) {
t.Run("GetOrgIdByAccessToken will return 0 when IsEnabled=false", func(t *testing.T) {
setup()
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
err := publicdashboardStore.Save(context.Background(), SavePublicDashboardConfigCommand{
PublicDashboard: PublicDashboard{
IsEnabled: false,
Uid: "abc123",
@ -536,15 +535,15 @@ func TestIntegrationGetPublicDashboardOrgId(t *testing.T) {
},
})
require.NoError(t, err)
orgId, err := publicdashboardStore.GetPublicDashboardOrgId(context.Background(), "accessToken")
orgId, err := publicdashboardStore.GetOrgIdByAccessToken(context.Background(), "accessToken")
require.NoError(t, err)
assert.NotEqual(t, savedDashboard.OrgId, orgId)
})
t.Run("GetPublicDashboardOrgId will return 0 when no public dashboard has matching access token", func(t *testing.T) {
t.Run("GetOrgIdByAccessToken will return 0 when no public dashboard has matching access token", func(t *testing.T) {
setup()
orgId, err := publicdashboardStore.GetPublicDashboardOrgId(context.Background(), "nonExistentAccessToken")
orgId, err := publicdashboardStore.GetOrgIdByAccessToken(context.Background(), "nonExistentAccessToken")
require.NoError(t, err)
assert.NotEqual(t, savedDashboard.OrgId, orgId)
})
@ -594,10 +593,10 @@ func insertPublicDashboard(t *testing.T, publicdashboardStore *PublicDashboardSt
},
}
err = publicdashboardStore.SavePublicDashboard(ctx, cmd)
err = publicdashboardStore.Save(ctx, cmd)
require.NoError(t, err)
pubdash, err := publicdashboardStore.GetPublicDashboardByUid(ctx, uid)
pubdash, err := publicdashboardStore.Find(ctx, uid)
require.NoError(t, err)
return pubdash

View File

@ -23,8 +23,8 @@ type FakePublicDashboardService struct {
mock.Mock
}
// GenerateNewPublicDashboardAccessToken provides a mock function with given fields: ctx
func (_m *FakePublicDashboardService) GenerateNewPublicDashboardAccessToken(ctx context.Context) (string, error) {
// NewPublicDashboardAccessToken provides a mock function with given fields: ctx
func (_m *FakePublicDashboardService) NewPublicDashboardAccessToken(ctx context.Context) (string, error) {
ret := _m.Called(ctx)
var r0 string
@ -45,7 +45,7 @@ func (_m *FakePublicDashboardService) GenerateNewPublicDashboardAccessToken(ctx
}
// GenerateNewPublicDashboardUid provides a mock function with given fields: ctx
func (_m *FakePublicDashboardService) GenerateNewPublicDashboardUid(ctx context.Context) (string, error) {
func (_m *FakePublicDashboardService) NewPublicDashboardUid(ctx context.Context) (string, error) {
ret := _m.Called(ctx)
var r0 string
@ -66,7 +66,7 @@ func (_m *FakePublicDashboardService) GenerateNewPublicDashboardUid(ctx context.
}
// GetAnnotations provides a mock function with given fields: ctx, reqDTO, accessToken
func (_m *FakePublicDashboardService) GetAnnotations(ctx context.Context, reqDTO models.AnnotationsQueryDTO, accessToken string) ([]models.AnnotationEvent, error) {
func (_m *FakePublicDashboardService) FindAnnotations(ctx context.Context, reqDTO models.AnnotationsQueryDTO, accessToken string) ([]models.AnnotationEvent, error) {
ret := _m.Called(ctx, reqDTO, accessToken)
var r0 []models.AnnotationEvent
@ -88,8 +88,8 @@ func (_m *FakePublicDashboardService) GetAnnotations(ctx context.Context, reqDTO
return r0, r1
}
// GetDashboard provides a mock function with given fields: ctx, dashboardUid
func (_m *FakePublicDashboardService) GetDashboard(ctx context.Context, dashboardUid string) (*pkgmodels.Dashboard, error) {
// FindDashboard provides a mock function with given fields: ctx, dashboardUid
func (_m *FakePublicDashboardService) FindDashboard(ctx context.Context, dashboardUid string) (*pkgmodels.Dashboard, error) {
ret := _m.Called(ctx, dashboardUid)
var r0 *pkgmodels.Dashboard
@ -132,8 +132,8 @@ func (_m *FakePublicDashboardService) GetMetricRequest(ctx context.Context, dash
return r0, r1
}
// GetPublicDashboard provides a mock function with given fields: ctx, orgId, dashboardUid
func (_m *FakePublicDashboardService) GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*models.PublicDashboard, error) {
// FindByDashboardUid provides a mock function with given fields: ctx, orgId, dashboardUid
func (_m *FakePublicDashboardService) FindByDashboardUid(ctx context.Context, orgId int64, dashboardUid string) (*models.PublicDashboard, error) {
ret := _m.Called(ctx, orgId, dashboardUid)
var r0 *models.PublicDashboard
@ -155,8 +155,8 @@ func (_m *FakePublicDashboardService) GetPublicDashboard(ctx context.Context, or
return r0, r1
}
// GetPublicDashboardAndDashboard provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardService) GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*models.PublicDashboard, *pkgmodels.Dashboard, error) {
// FindPublicDashboardAndDashboardByAccessToken provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardService) FindPublicDashboardAndDashboardByAccessToken(ctx context.Context, accessToken string) (*models.PublicDashboard, *pkgmodels.Dashboard, error) {
ret := _m.Called(ctx, accessToken)
var r0 *models.PublicDashboard
@ -187,8 +187,8 @@ func (_m *FakePublicDashboardService) GetPublicDashboardAndDashboard(ctx context
return r0, r1, r2
}
// GetPublicDashboardOrgId provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardService) GetPublicDashboardOrgId(ctx context.Context, accessToken string) (int64, error) {
// GetOrgIdByAccessToken provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardService) GetOrgIdByAccessToken(ctx context.Context, accessToken string) (int64, error) {
ret := _m.Called(ctx, accessToken)
var r0 int64
@ -231,8 +231,8 @@ func (_m *FakePublicDashboardService) GetQueryDataResponse(ctx context.Context,
return r0, r1
}
// ListPublicDashboards provides a mock function with given fields: ctx, u, orgId
func (_m *FakePublicDashboardService) ListPublicDashboards(ctx context.Context, u *user.SignedInUser, orgId int64) ([]models.PublicDashboardListResponse, error) {
// FindAll provides a mock function with given fields: ctx, u, orgId
func (_m *FakePublicDashboardService) FindAll(ctx context.Context, u *user.SignedInUser, orgId int64) ([]models.PublicDashboardListResponse, error) {
ret := _m.Called(ctx, u, orgId)
var r0 []models.PublicDashboardListResponse
@ -254,8 +254,8 @@ func (_m *FakePublicDashboardService) ListPublicDashboards(ctx context.Context,
return r0, r1
}
// PublicDashboardEnabledExistsByAccessToken provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardService) PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error) {
// ExistsEnabledByAccessToken provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardService) ExistsEnabledByAccessToken(ctx context.Context, accessToken string) (bool, error) {
ret := _m.Called(ctx, accessToken)
var r0 bool
@ -276,7 +276,7 @@ func (_m *FakePublicDashboardService) PublicDashboardEnabledExistsByAccessToken(
}
// PublicDashboardIsEnabled provides a mock function with given fields: ctx, dashboardUid
func (_m *FakePublicDashboardService) PublicDashboardIsEnabled(ctx context.Context, dashboardUid string) (bool, error) {
func (_m *FakePublicDashboardService) ExistsEnabledByDashboardUid(ctx context.Context, dashboardUid string) (bool, error) {
ret := _m.Called(ctx, dashboardUid)
var r0 bool
@ -296,8 +296,8 @@ func (_m *FakePublicDashboardService) PublicDashboardIsEnabled(ctx context.Conte
return r0, r1
}
// SavePublicDashboard provides a mock function with given fields: ctx, u, dto
func (_m *FakePublicDashboardService) SavePublicDashboard(ctx context.Context, u *user.SignedInUser, dto *models.SavePublicDashboardConfigDTO) (*models.PublicDashboard, error) {
// Save provides a mock function with given fields: ctx, u, dto
func (_m *FakePublicDashboardService) Save(ctx context.Context, u *user.SignedInUser, dto *models.SavePublicDashboardConfigDTO) (*models.PublicDashboard, error) {
ret := _m.Called(ctx, u, dto)
var r0 *models.PublicDashboard

View File

@ -17,7 +17,7 @@ type FakePublicDashboardStore struct {
}
// GetDashboard provides a mock function with given fields: ctx, dashboardUid
func (_m *FakePublicDashboardStore) GetDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error) {
func (_m *FakePublicDashboardStore) FindDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error) {
ret := _m.Called(ctx, dashboardUid)
var r0 *models.Dashboard
@ -40,7 +40,7 @@ func (_m *FakePublicDashboardStore) GetDashboard(ctx context.Context, dashboardU
}
// GetPublicDashboard provides a mock function with given fields: ctx, orgId, dashboardUid
func (_m *FakePublicDashboardStore) GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*publicdashboardsmodels.PublicDashboard, error) {
func (_m *FakePublicDashboardStore) FindByDashboardUid(ctx context.Context, orgId int64, dashboardUid string) (*publicdashboardsmodels.PublicDashboard, error) {
ret := _m.Called(ctx, orgId, dashboardUid)
var r0 *publicdashboardsmodels.PublicDashboard
@ -63,7 +63,7 @@ func (_m *FakePublicDashboardStore) GetPublicDashboard(ctx context.Context, orgI
}
// GetPublicDashboardAndDashboard provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardStore) GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*publicdashboardsmodels.PublicDashboard, *models.Dashboard, error) {
func (_m *FakePublicDashboardStore) FindPublicDashboardAndDashboardByAccessToken(ctx context.Context, accessToken string) (*publicdashboardsmodels.PublicDashboard, *models.Dashboard, error) {
ret := _m.Called(ctx, accessToken)
var r0 *publicdashboardsmodels.PublicDashboard
@ -95,7 +95,7 @@ func (_m *FakePublicDashboardStore) GetPublicDashboardAndDashboard(ctx context.C
}
// GetPublicDashboardByAccessToken provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardStore) GetPublicDashboardByAccessToken(ctx context.Context, accessToken string) (*publicdashboardsmodels.PublicDashboard, error) {
func (_m *FakePublicDashboardStore) FindByAccessToken(ctx context.Context, accessToken string) (*publicdashboardsmodels.PublicDashboard, error) {
ret := _m.Called(ctx, accessToken)
var r0 *publicdashboardsmodels.PublicDashboard
@ -118,7 +118,7 @@ func (_m *FakePublicDashboardStore) GetPublicDashboardByAccessToken(ctx context.
}
// GetPublicDashboardByUid provides a mock function with given fields: ctx, uid
func (_m *FakePublicDashboardStore) GetPublicDashboardByUid(ctx context.Context, uid string) (*publicdashboardsmodels.PublicDashboard, error) {
func (_m *FakePublicDashboardStore) Find(ctx context.Context, uid string) (*publicdashboardsmodels.PublicDashboard, error) {
ret := _m.Called(ctx, uid)
var r0 *publicdashboardsmodels.PublicDashboard
@ -141,7 +141,7 @@ func (_m *FakePublicDashboardStore) GetPublicDashboardByUid(ctx context.Context,
}
// GetPublicDashboardOrgId provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardStore) GetPublicDashboardOrgId(ctx context.Context, accessToken string) (int64, error) {
func (_m *FakePublicDashboardStore) GetOrgIdByAccessToken(ctx context.Context, accessToken string) (int64, error) {
ret := _m.Called(ctx, accessToken)
var r0 int64
@ -162,7 +162,7 @@ func (_m *FakePublicDashboardStore) GetPublicDashboardOrgId(ctx context.Context,
}
// ListPublicDashboards provides a mock function with given fields: ctx, orgId
func (_m *FakePublicDashboardStore) ListPublicDashboards(ctx context.Context, orgId int64) ([]publicdashboardsmodels.PublicDashboardListResponse, error) {
func (_m *FakePublicDashboardStore) FindAll(ctx context.Context, orgId int64) ([]publicdashboardsmodels.PublicDashboardListResponse, error) {
ret := _m.Called(ctx, orgId)
var r0 []publicdashboardsmodels.PublicDashboardListResponse
@ -185,7 +185,7 @@ func (_m *FakePublicDashboardStore) ListPublicDashboards(ctx context.Context, or
}
// PublicDashboardEnabledExistsByAccessToken provides a mock function with given fields: ctx, accessToken
func (_m *FakePublicDashboardStore) PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error) {
func (_m *FakePublicDashboardStore) ExistsEnabledByAccessToken(ctx context.Context, accessToken string) (bool, error) {
ret := _m.Called(ctx, accessToken)
var r0 bool
@ -206,7 +206,7 @@ func (_m *FakePublicDashboardStore) PublicDashboardEnabledExistsByAccessToken(ct
}
// PublicDashboardEnabledExistsByDashboardUid provides a mock function with given fields: ctx, dashboardUid
func (_m *FakePublicDashboardStore) PublicDashboardEnabledExistsByDashboardUid(ctx context.Context, dashboardUid string) (bool, error) {
func (_m *FakePublicDashboardStore) ExistsEnabledByDashboardUid(ctx context.Context, dashboardUid string) (bool, error) {
ret := _m.Called(ctx, dashboardUid)
var r0 bool
@ -227,7 +227,7 @@ func (_m *FakePublicDashboardStore) PublicDashboardEnabledExistsByDashboardUid(c
}
// SavePublicDashboard provides a mock function with given fields: ctx, cmd
func (_m *FakePublicDashboardStore) SavePublicDashboard(ctx context.Context, cmd publicdashboardsmodels.SavePublicDashboardConfigCommand) error {
func (_m *FakePublicDashboardStore) Save(ctx context.Context, cmd publicdashboardsmodels.SavePublicDashboardConfigCommand) error {
ret := _m.Called(ctx, cmd)
var r0 error
@ -241,7 +241,7 @@ func (_m *FakePublicDashboardStore) SavePublicDashboard(ctx context.Context, cmd
}
// UpdatePublicDashboard provides a mock function with given fields: ctx, cmd
func (_m *FakePublicDashboardStore) UpdatePublicDashboard(ctx context.Context, cmd publicdashboardsmodels.SavePublicDashboardConfigCommand) error {
func (_m *FakePublicDashboardStore) Update(ctx context.Context, cmd publicdashboardsmodels.SavePublicDashboardConfigCommand) error {
ret := _m.Called(ctx, cmd)
var r0 error

View File

@ -14,32 +14,35 @@ import (
//go:generate mockery --name Service --structname FakePublicDashboardService --inpackage --filename public_dashboard_service_mock.go
type Service interface {
GenerateNewPublicDashboardAccessToken(ctx context.Context) (string, error)
GenerateNewPublicDashboardUid(ctx context.Context) (string, error)
GetAnnotations(ctx context.Context, reqDTO AnnotationsQueryDTO, accessToken string) ([]AnnotationEvent, error)
GetDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error)
FindPublicDashboardAndDashboardByAccessToken(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error)
FindByDashboardUid(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error)
FindAnnotations(ctx context.Context, reqDTO AnnotationsQueryDTO, accessToken string) ([]AnnotationEvent, error)
FindDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error)
FindAll(ctx context.Context, u *user.SignedInUser, orgId int64) ([]PublicDashboardListResponse, error)
Save(ctx context.Context, u *user.SignedInUser, dto *SavePublicDashboardConfigDTO) (*PublicDashboard, error)
GetMetricRequest(ctx context.Context, dashboard *models.Dashboard, publicDashboard *PublicDashboard, panelId int64, reqDTO PublicDashboardQueryDTO) (dtos.MetricRequest, error)
GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error)
GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error)
GetPublicDashboardOrgId(ctx context.Context, accessToken string) (int64, error)
GetQueryDataResponse(ctx context.Context, skipCache bool, reqDTO PublicDashboardQueryDTO, panelId int64, accessToken string) (*backend.QueryDataResponse, error)
ListPublicDashboards(ctx context.Context, u *user.SignedInUser, orgId int64) ([]PublicDashboardListResponse, error)
PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error)
PublicDashboardIsEnabled(ctx context.Context, dashboardUid string) (bool, error)
SavePublicDashboard(ctx context.Context, u *user.SignedInUser, dto *SavePublicDashboardConfigDTO) (*PublicDashboard, error)
GetOrgIdByAccessToken(ctx context.Context, accessToken string) (int64, error)
NewPublicDashboardAccessToken(ctx context.Context) (string, error)
NewPublicDashboardUid(ctx context.Context) (string, error)
ExistsEnabledByAccessToken(ctx context.Context, accessToken string) (bool, error)
ExistsEnabledByDashboardUid(ctx context.Context, dashboardUid string) (bool, error)
}
//go:generate mockery --name Store --structname FakePublicDashboardStore --inpackage --filename public_dashboard_store_mock.go
type Store interface {
GetDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error)
GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error)
GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error)
GetPublicDashboardByAccessToken(ctx context.Context, accessToken string) (*PublicDashboard, error)
GetPublicDashboardByUid(ctx context.Context, uid string) (*PublicDashboard, error)
GetPublicDashboardOrgId(ctx context.Context, accessToken string) (int64, error)
ListPublicDashboards(ctx context.Context, orgId int64) ([]PublicDashboardListResponse, error)
PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error)
PublicDashboardEnabledExistsByDashboardUid(ctx context.Context, dashboardUid string) (bool, error)
SavePublicDashboard(ctx context.Context, cmd SavePublicDashboardConfigCommand) error
UpdatePublicDashboard(ctx context.Context, cmd SavePublicDashboardConfigCommand) error
Find(ctx context.Context, uid string) (*PublicDashboard, error)
FindByAccessToken(ctx context.Context, accessToken string) (*PublicDashboard, error)
FindByDashboardUid(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error)
FindDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error)
FindPublicDashboardAndDashboardByAccessToken(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error)
FindAll(ctx context.Context, orgId int64) ([]PublicDashboardListResponse, error)
Save(ctx context.Context, cmd SavePublicDashboardConfigCommand) error
Update(ctx context.Context, cmd SavePublicDashboardConfigCommand) error
GetOrgIdByAccessToken(ctx context.Context, accessToken string) (int64, error)
ExistsEnabledByAccessToken(ctx context.Context, accessToken string) (bool, error)
ExistsEnabledByDashboardUid(ctx context.Context, dashboardUid string) (bool, error)
}

View File

@ -18,8 +18,8 @@ import (
)
// GetAnnotations returns annotations for a public dashboard
func (pd *PublicDashboardServiceImpl) GetAnnotations(ctx context.Context, reqDTO models.AnnotationsQueryDTO, accessToken string) ([]models.AnnotationEvent, error) {
pub, dash, err := pd.GetPublicDashboardAndDashboard(ctx, accessToken)
func (pd *PublicDashboardServiceImpl) FindAnnotations(ctx context.Context, reqDTO models.AnnotationsQueryDTO, accessToken string) ([]models.AnnotationEvent, error) {
pub, dash, err := pd.FindPublicDashboardAndDashboardByAccessToken(ctx, accessToken)
if err != nil {
return nil, err
}
@ -120,7 +120,7 @@ func (pd *PublicDashboardServiceImpl) GetMetricRequest(ctx context.Context, dash
// GetQueryDataResponse returns a query data response for the given panel and query
func (pd *PublicDashboardServiceImpl) GetQueryDataResponse(ctx context.Context, skipCache bool, queryDto models.PublicDashboardQueryDTO, panelId int64, accessToken string) (*backend.QueryDataResponse, error) {
publicDashboard, dashboard, err := pd.GetPublicDashboardAndDashboard(ctx, accessToken)
publicDashboard, dashboard, err := pd.FindPublicDashboardAndDashboardByAccessToken(ctx, accessToken)
if err != nil {
return nil, err
}

View File

@ -399,7 +399,7 @@ func TestGetQueryDataResponse(t *testing.T) {
TimeSettings: timeSettings,
},
}
pubdashDto, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
pubdashDto, err := service.Save(context.Background(), SignedInUser, dto)
require.NoError(t, err)
resp, _ := service.GetQueryDataResponse(context.Background(), true, publicDashboardQueryDTO, 1, pubdashDto.AccessToken)
@ -421,7 +421,7 @@ func TestGetAnnotations(t *testing.T) {
store: &fakeStore,
AnnotationsRepo: annotationsRepo,
}
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).
fakeStore.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.AnythingOfType("string")).
Return(&PublicDashboard{Uid: "uid1", IsEnabled: true}, grafanamodels.NewDashboard("dash1"), nil)
reqDTO := AnnotationsQueryDTO{
@ -430,7 +430,7 @@ func TestGetAnnotations(t *testing.T) {
}
dash := grafanamodels.NewDashboard("testDashboard")
items, _ := service.GetAnnotations(context.Background(), reqDTO, "abc123")
items, _ := service.FindAnnotations(context.Background(), reqDTO, "abc123")
anonUser := buildAnonymousUser(context.Background(), dash)
assert.Equal(t, "dashboards:*", anonUser.Permissions[0]["dashboards:read"][0])
@ -475,7 +475,7 @@ func TestGetAnnotations(t *testing.T) {
AnnotationsRepo: &annotationsRepo,
}
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: true}
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
fakeStore.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
annotationsRepo.On("Find", mock.Anything, mock.Anything).Return([]*annotations.ItemDTO{
{
Id: 1,
@ -488,7 +488,7 @@ func TestGetAnnotations(t *testing.T) {
},
}, nil).Maybe()
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
items, err := service.FindAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
expected := AnnotationEvent{
Id: 1,
@ -532,7 +532,7 @@ func TestGetAnnotations(t *testing.T) {
AnnotationsRepo: &annotationsRepo,
}
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: true}
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
fakeStore.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
annotationsRepo.On("Find", mock.Anything, mock.Anything).Return([]*annotations.ItemDTO{
{
Id: 1,
@ -545,7 +545,7 @@ func TestGetAnnotations(t *testing.T) {
},
}, nil).Maybe()
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
items, err := service.FindAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
expected := AnnotationEvent{
Id: 1,
@ -601,7 +601,7 @@ func TestGetAnnotations(t *testing.T) {
AnnotationsRepo: &annotationsRepo,
}
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: true}
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
fakeStore.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
annotationsRepo.On("Find", mock.Anything, mock.Anything).Return([]*annotations.ItemDTO{
{
Id: 1,
@ -614,7 +614,7 @@ func TestGetAnnotations(t *testing.T) {
},
}, nil).Maybe()
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
items, err := service.FindAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
expected := AnnotationEvent{
Id: 1,
@ -643,9 +643,9 @@ func TestGetAnnotations(t *testing.T) {
}
dashboard := grafanamodels.NewDashboard("dashWithNoAnnotations")
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: true}
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
fakeStore.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
items, err := service.FindAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
require.NoError(t, err)
assert.Empty(t, items)
@ -676,9 +676,9 @@ func TestGetAnnotations(t *testing.T) {
annos := []DashAnnotation{grafanaAnnotation}
dashboard := AddAnnotationsToDashboard(t, dash, annos)
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: false}
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
fakeStore.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
items, err := service.FindAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
require.NoError(t, err)
assert.Empty(t, items)
@ -708,10 +708,10 @@ func TestGetAnnotations(t *testing.T) {
annos := []DashAnnotation{grafanaAnnotation}
dash = AddAnnotationsToDashboard(t, dash, annos)
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dash.Uid, AnnotationsEnabled: true}
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dash, nil)
fakeStore.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dash, nil)
annotationsRepo.On("Find", mock.Anything, mock.Anything).Return(nil, errors.New("failed")).Maybe()
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
items, err := service.FindAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
require.Error(t, err)
require.Nil(t, items)
@ -822,7 +822,7 @@ func TestBuildMetricRequest(t *testing.T) {
},
}
publicDashboardPD, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
publicDashboardPD, err := service.Save(context.Background(), SignedInUser, dto)
require.NoError(t, err)
nonPublicDto := &SavePublicDashboardConfigDTO{
@ -836,7 +836,7 @@ func TestBuildMetricRequest(t *testing.T) {
},
}
_, err = service.SavePublicDashboard(context.Background(), SignedInUser, nonPublicDto)
_, err = service.Save(context.Background(), SignedInUser, nonPublicDto)
require.NoError(t, err)
t.Run("extracts queries from provided dashboard", func(t *testing.T) {

View File

@ -61,9 +61,9 @@ func ProvideService(
}
}
// GetDashboard Gets a dashboard by Uid
func (pd *PublicDashboardServiceImpl) GetDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error) {
dashboard, err := pd.store.GetDashboard(ctx, dashboardUid)
// FindDashboard Gets a dashboard by Uid
func (pd *PublicDashboardServiceImpl) FindDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error) {
dashboard, err := pd.store.FindDashboard(ctx, dashboardUid)
if err != nil {
return nil, err
@ -72,9 +72,9 @@ func (pd *PublicDashboardServiceImpl) GetDashboard(ctx context.Context, dashboar
return dashboard, err
}
// GetPublicDashboardAndDashboard Gets public dashboard via access token
func (pd *PublicDashboardServiceImpl) GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error) {
pubdash, dash, err := pd.store.GetPublicDashboardAndDashboard(ctx, accessToken)
// FindPublicDashboardAndDashboardByAccessToken Gets public dashboard via access token
func (pd *PublicDashboardServiceImpl) FindPublicDashboardAndDashboardByAccessToken(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error) {
pubdash, dash, err := pd.store.FindPublicDashboardAndDashboardByAccessToken(ctx, accessToken)
ctxLogger := pd.log.FromContext(ctx)
if err != nil {
@ -82,26 +82,26 @@ func (pd *PublicDashboardServiceImpl) GetPublicDashboardAndDashboard(ctx context
}
if pubdash == nil {
ctxLogger.Error("GetPublicDashboardAndDashboard: Public dashboard not found", "accessToken", accessToken)
ctxLogger.Error("FindPublicDashboardAndDashboardByAccessToken: Public dashboard not found", "accessToken", accessToken)
return nil, nil, ErrPublicDashboardNotFound
}
if dash == nil {
ctxLogger.Error("GetPublicDashboardAndDashboard: Dashboard not found", "accessToken", accessToken)
ctxLogger.Error("FindPublicDashboardAndDashboardByAccessToken: Dashboard not found", "accessToken", accessToken)
return nil, nil, ErrPublicDashboardNotFound
}
if !pubdash.IsEnabled {
ctxLogger.Error("GetPublicDashboardAndDashboard: Public dashboard is disabled", "accessToken", accessToken)
ctxLogger.Error("FindPublicDashboardAndDashboardByAccessToken: Public dashboard is disabled", "accessToken", accessToken)
return nil, nil, ErrPublicDashboardNotFound
}
return pubdash, dash, nil
}
// GetPublicDashboard is a helper method to retrieve the public dashboard configuration for a given dashboard from the database
func (pd *PublicDashboardServiceImpl) GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error) {
pdc, err := pd.store.GetPublicDashboard(ctx, orgId, dashboardUid)
// FindByDashboardUid is a helper method to retrieve the public dashboard configuration for a given dashboard from the database
func (pd *PublicDashboardServiceImpl) FindByDashboardUid(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error) {
pdc, err := pd.store.FindByDashboardUid(ctx, orgId, dashboardUid)
if err != nil {
return nil, err
}
@ -109,11 +109,11 @@ func (pd *PublicDashboardServiceImpl) GetPublicDashboard(ctx context.Context, or
return pdc, nil
}
// SavePublicDashboard is a helper method to persist the sharing config
// Save is a helper method to persist the sharing config
// to the database. It handles validations for sharing config and persistence
func (pd *PublicDashboardServiceImpl) SavePublicDashboard(ctx context.Context, u *user.SignedInUser, dto *SavePublicDashboardConfigDTO) (*PublicDashboard, error) {
func (pd *PublicDashboardServiceImpl) Save(ctx context.Context, u *user.SignedInUser, dto *SavePublicDashboardConfigDTO) (*PublicDashboard, error) {
// validate if the dashboard exists
dashboard, err := pd.GetDashboard(ctx, dto.DashboardUid)
dashboard, err := pd.FindDashboard(ctx, dto.DashboardUid)
if err != nil {
return nil, err
}
@ -124,7 +124,7 @@ func (pd *PublicDashboardServiceImpl) SavePublicDashboard(ctx context.Context, u
}
// get existing public dashboard if exists
existingPubdash, err := pd.store.GetPublicDashboardByUid(ctx, dto.PublicDashboard.Uid)
existingPubdash, err := pd.store.Find(ctx, dto.PublicDashboard.Uid)
if err != nil {
return nil, err
}
@ -145,7 +145,7 @@ func (pd *PublicDashboardServiceImpl) SavePublicDashboard(ctx context.Context, u
}
//Get latest public dashboard to return
newPubdash, err := pd.store.GetPublicDashboardByUid(ctx, pubdashUid)
newPubdash, err := pd.store.Find(ctx, pubdashUid)
if err != nil {
return nil, err
}
@ -155,13 +155,13 @@ func (pd *PublicDashboardServiceImpl) SavePublicDashboard(ctx context.Context, u
return newPubdash, err
}
// GenerateNewPublicDashboardUid Generates a unique uid to create a public dashboard. Will make 3 attempts and fail if it cannot find an unused uid
func (pd *PublicDashboardServiceImpl) GenerateNewPublicDashboardUid(ctx context.Context) (string, error) {
// NewPublicDashboardUid Generates a unique uid to create a public dashboard. Will make 3 attempts and fail if it cannot find an unused uid
func (pd *PublicDashboardServiceImpl) NewPublicDashboardUid(ctx context.Context) (string, error) {
var uid string
for i := 0; i < 3; i++ {
uid = util.GenerateShortUID()
pubdash, _ := pd.store.GetPublicDashboardByUid(ctx, uid)
pubdash, _ := pd.store.Find(ctx, uid)
if pubdash == nil {
return uid, nil
}
@ -169,8 +169,8 @@ func (pd *PublicDashboardServiceImpl) GenerateNewPublicDashboardUid(ctx context.
return "", ErrPublicDashboardFailedGenerateUniqueUid
}
// GenerateNewPublicDashboardAccessToken Generates a unique accessToken to create a public dashboard. Will make 3 attempts and fail if it cannot find an unused access token
func (pd *PublicDashboardServiceImpl) GenerateNewPublicDashboardAccessToken(ctx context.Context) (string, error) {
// NewPublicDashboardAccessToken Generates a unique accessToken to create a public dashboard. Will make 3 attempts and fail if it cannot find an unused access token
func (pd *PublicDashboardServiceImpl) NewPublicDashboardAccessToken(ctx context.Context) (string, error) {
var accessToken string
for i := 0; i < 3; i++ {
var err error
@ -179,7 +179,7 @@ func (pd *PublicDashboardServiceImpl) GenerateNewPublicDashboardAccessToken(ctx
continue
}
pubdash, _ := pd.store.GetPublicDashboardByAccessToken(ctx, accessToken)
pubdash, _ := pd.store.FindByAccessToken(ctx, accessToken)
if pubdash == nil {
return accessToken, nil
}
@ -187,15 +187,15 @@ func (pd *PublicDashboardServiceImpl) GenerateNewPublicDashboardAccessToken(ctx
return "", ErrPublicDashboardFailedGenerateAccessToken
}
// Called by SavePublicDashboard this handles business logic
// Called by Save this handles business logic
// to generate token and calls create at the database layer
func (pd *PublicDashboardServiceImpl) savePublicDashboard(ctx context.Context, dto *SavePublicDashboardConfigDTO) (string, error) {
uid, err := pd.GenerateNewPublicDashboardUid(ctx)
uid, err := pd.NewPublicDashboardUid(ctx)
if err != nil {
return "", err
}
accessToken, err := pd.GenerateNewPublicDashboardAccessToken(ctx)
accessToken, err := pd.NewPublicDashboardAccessToken(ctx)
if err != nil {
return "", err
}
@ -214,7 +214,7 @@ func (pd *PublicDashboardServiceImpl) savePublicDashboard(ctx context.Context, d
},
}
err = pd.store.SavePublicDashboard(ctx, cmd)
err = pd.store.Save(ctx, cmd)
if err != nil {
return "", err
}
@ -222,7 +222,7 @@ func (pd *PublicDashboardServiceImpl) savePublicDashboard(ctx context.Context, d
return uid, nil
}
// Called by SavePublicDashboard this handles business logic for updating a
// Called by Save this handles business logic for updating a
// dashboard and calls update at the database layer
func (pd *PublicDashboardServiceImpl) updatePublicDashboard(ctx context.Context, dto *SavePublicDashboardConfigDTO) (string, error) {
cmd := SavePublicDashboardConfigCommand{
@ -236,12 +236,12 @@ func (pd *PublicDashboardServiceImpl) updatePublicDashboard(ctx context.Context,
},
}
return dto.PublicDashboard.Uid, pd.store.UpdatePublicDashboard(ctx, cmd)
return dto.PublicDashboard.Uid, pd.store.Update(ctx, cmd)
}
// Gets a list of public dashboards by orgId
func (pd *PublicDashboardServiceImpl) ListPublicDashboards(ctx context.Context, u *user.SignedInUser, orgId int64) ([]PublicDashboardListResponse, error) {
publicDashboards, err := pd.store.ListPublicDashboards(ctx, orgId)
func (pd *PublicDashboardServiceImpl) FindAll(ctx context.Context, u *user.SignedInUser, orgId int64) ([]PublicDashboardListResponse, error) {
publicDashboards, err := pd.store.FindAll(ctx, orgId)
if err != nil {
return nil, err
}
@ -249,16 +249,16 @@ func (pd *PublicDashboardServiceImpl) ListPublicDashboards(ctx context.Context,
return pd.filterDashboardsByPermissions(ctx, u, publicDashboards)
}
func (pd *PublicDashboardServiceImpl) PublicDashboardIsEnabled(ctx context.Context, dashboardUid string) (bool, error) {
return pd.store.PublicDashboardEnabledExistsByDashboardUid(ctx, dashboardUid)
func (pd *PublicDashboardServiceImpl) ExistsEnabledByDashboardUid(ctx context.Context, dashboardUid string) (bool, error) {
return pd.store.ExistsEnabledByDashboardUid(ctx, dashboardUid)
}
func (pd *PublicDashboardServiceImpl) PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error) {
return pd.store.PublicDashboardEnabledExistsByAccessToken(ctx, accessToken)
func (pd *PublicDashboardServiceImpl) ExistsEnabledByAccessToken(ctx context.Context, accessToken string) (bool, error) {
return pd.store.ExistsEnabledByAccessToken(ctx, accessToken)
}
func (pd *PublicDashboardServiceImpl) GetPublicDashboardOrgId(ctx context.Context, accessToken string) (int64, error) {
return pd.store.GetPublicDashboardOrgId(ctx, accessToken)
func (pd *PublicDashboardServiceImpl) GetOrgIdByAccessToken(ctx context.Context, accessToken string) (int64, error) {
return pd.store.GetOrgIdByAccessToken(ctx, accessToken)
}
// intervalMS and maxQueryData values are being calculated on the frontend for regular dashboards
@ -290,7 +290,7 @@ func (pd *PublicDashboardServiceImpl) getSafeIntervalAndMaxDataPoints(reqDTO Pub
return safeInterval.Value.Milliseconds(), safeResolution
}
// Log when PublicDashboard.IsEnabled changed
// Log when PublicDashboard.ExistsEnabledByDashboardUid changed
func (pd *PublicDashboardServiceImpl) logIsEnabledChanged(existingPubdash *PublicDashboard, newPubdash *PublicDashboard, u *user.SignedInUser) {
if publicDashboardIsEnabledChanged(existingPubdash, newPubdash) {
verb := "disabled"
@ -320,7 +320,7 @@ func (pd *PublicDashboardServiceImpl) filterDashboardsByPermissions(ctx context.
return result, nil
}
// Checks to see if PublicDashboard.IsEnabled is true on create or changed on update
// Checks to see if PublicDashboard.ExistsEnabledByDashboardUid is true on create or changed on update
func publicDashboardIsEnabledChanged(existingPubdash *PublicDashboard, newPubdash *PublicDashboard) bool {
// creating dashboard, enabled true
newDashCreated := existingPubdash == nil && newPubdash.IsEnabled

View File

@ -101,10 +101,10 @@ func TestGetPublicDashboard(t *testing.T) {
store: &fakeStore,
}
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.Anything).
fakeStore.On("FindPublicDashboardAndDashboardByAccessToken", mock.Anything, mock.Anything).
Return(test.StoreResp.pd, test.StoreResp.d, test.StoreResp.err)
pdc, dash, err := service.GetPublicDashboardAndDashboard(context.Background(), test.AccessToken)
pdc, dash, err := service.FindPublicDashboardAndDashboardByAccessToken(context.Background(), test.AccessToken)
if test.ErrResp != nil {
assert.Error(t, test.ErrResp, err)
} else {
@ -146,10 +146,10 @@ func TestSavePublicDashboard(t *testing.T) {
},
}
_, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
_, err := service.Save(context.Background(), SignedInUser, dto)
require.NoError(t, err)
pubdash, err := service.GetPublicDashboard(context.Background(), dashboard.OrgId, dashboard.Uid)
pubdash, err := service.FindByDashboardUid(context.Background(), dashboard.OrgId, dashboard.Uid)
require.NoError(t, err)
// DashboardUid/OrgId/CreatedBy set by the command, not parameters
@ -157,7 +157,7 @@ func TestSavePublicDashboard(t *testing.T) {
assert.Equal(t, dashboard.OrgId, pubdash.OrgId)
assert.Equal(t, dto.UserId, pubdash.CreatedBy)
assert.Equal(t, dto.PublicDashboard.AnnotationsEnabled, pubdash.AnnotationsEnabled)
// IsEnabled set by parameters
// ExistsEnabledByDashboardUid set by parameters
assert.Equal(t, dto.PublicDashboard.IsEnabled, pubdash.IsEnabled)
// CreatedAt set to non-zero time
assert.NotEqual(t, &time.Time{}, pubdash.CreatedAt)
@ -190,10 +190,10 @@ func TestSavePublicDashboard(t *testing.T) {
},
}
_, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
_, err := service.Save(context.Background(), SignedInUser, dto)
require.NoError(t, err)
pubdash, err := service.GetPublicDashboard(context.Background(), dashboard.OrgId, dashboard.Uid)
pubdash, err := service.FindByDashboardUid(context.Background(), dashboard.OrgId, dashboard.Uid)
require.NoError(t, err)
assert.Equal(t, defaultPubdashTimeSettings, pubdash.TimeSettings)
})
@ -221,7 +221,7 @@ func TestSavePublicDashboard(t *testing.T) {
},
}
_, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
_, err := service.Save(context.Background(), SignedInUser, dto)
require.Error(t, err)
})
@ -236,10 +236,10 @@ func TestSavePublicDashboard(t *testing.T) {
}
publicDashboardStore := &FakePublicDashboardStore{}
publicDashboardStore.On("GetDashboard", mock.Anything, mock.Anything).Return(dashboard, nil)
publicDashboardStore.On("GetPublicDashboardByUid", mock.Anything, mock.Anything).Return(nil, nil)
publicDashboardStore.On("GetPublicDashboardByAccessToken", mock.Anything, mock.Anything).Return(pubdash, nil)
publicDashboardStore.On("GenerateNewPublicDashboardUid", mock.Anything).Return("an-uid", nil)
publicDashboardStore.On("FindDashboard", mock.Anything, mock.Anything).Return(dashboard, nil)
publicDashboardStore.On("Find", mock.Anything, mock.Anything).Return(nil, nil)
publicDashboardStore.On("FindByAccessToken", mock.Anything, mock.Anything).Return(pubdash, nil)
publicDashboardStore.On("NewPublicDashboardUid", mock.Anything).Return("an-uid", nil)
service := &PublicDashboardServiceImpl{
log: log.New("test.logger"),
@ -257,11 +257,11 @@ func TestSavePublicDashboard(t *testing.T) {
},
}
_, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
_, err := service.Save(context.Background(), SignedInUser, dto)
require.Error(t, err)
require.Equal(t, err, ErrPublicDashboardFailedGenerateAccessToken)
publicDashboardStore.AssertNotCalled(t, "SavePublicDashboard")
publicDashboardStore.AssertNotCalled(t, "Save")
})
}
@ -288,7 +288,7 @@ func TestUpdatePublicDashboard(t *testing.T) {
},
}
savedPubdash, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
savedPubdash, err := service.Save(context.Background(), SignedInUser, dto)
require.NoError(t, err)
// attempt to overwrite settings
@ -312,7 +312,7 @@ func TestUpdatePublicDashboard(t *testing.T) {
// Since the dto.PublicDashboard has a uid, this will call
// service.updatePublicDashboard
updatedPubdash, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
updatedPubdash, err := service.Save(context.Background(), SignedInUser, dto)
require.NoError(t, err)
// don't get updated
@ -353,7 +353,7 @@ func TestUpdatePublicDashboard(t *testing.T) {
// Since the dto.PublicDashboard has a uid, this will call
// service.updatePublicDashboard
savedPubdash, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
savedPubdash, err := service.Save(context.Background(), SignedInUser, dto)
require.NoError(t, err)
// attempt to overwrite settings
@ -373,7 +373,7 @@ func TestUpdatePublicDashboard(t *testing.T) {
},
}
updatedPubdash, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
updatedPubdash, err := service.Save(context.Background(), SignedInUser, dto)
require.NoError(t, err)
assert.Equal(t, &TimeSettings{}, updatedPubdash.TimeSettings)
@ -764,7 +764,7 @@ func TestPublicDashboardServiceImpl_ListPublicDashboards(t *testing.T) {
}
store := NewFakePublicDashboardStore(t)
store.On("ListPublicDashboards", mock.Anything, mock.Anything).
store.On("FindAll", mock.Anything, mock.Anything).
Return(mockedDashboards, nil)
ac := tests.SetupMockAccesscontrol(t,
@ -784,16 +784,16 @@ func TestPublicDashboardServiceImpl_ListPublicDashboards(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
ac.EvaluateFunc = tt.evaluateFunc
got, err := pd.ListPublicDashboards(tt.args.ctx, tt.args.u, tt.args.orgId)
if !tt.wantErr(t, err, fmt.Sprintf("ListPublicDashboards(%v, %v, %v)", tt.args.ctx, tt.args.u, tt.args.orgId)) {
got, err := pd.FindAll(tt.args.ctx, tt.args.u, tt.args.orgId)
if !tt.wantErr(t, err, fmt.Sprintf("FindAll(%v, %v, %v)", tt.args.ctx, tt.args.u, tt.args.orgId)) {
return
}
assert.Equalf(t, tt.want, got, "ListPublicDashboards(%v, %v, %v)", tt.args.ctx, tt.args.u, tt.args.orgId)
assert.Equalf(t, tt.want, got, "FindAll(%v, %v, %v)", tt.args.ctx, tt.args.u, tt.args.orgId)
})
}
}
func TestPublicDashboardServiceImpl_GenerateNewPublicDashboardUid(t *testing.T) {
func TestPublicDashboardServiceImpl_NewPublicDashboardUid(t *testing.T) {
mockedDashboard := &PublicDashboard{
IsEnabled: true,
AnnotationsEnabled: false,
@ -835,29 +835,29 @@ func TestPublicDashboardServiceImpl_GenerateNewPublicDashboardUid(t *testing.T)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
store := NewFakePublicDashboardStore(t)
store.On("GetPublicDashboardByUid", mock.Anything, mock.Anything).
store.On("Find", mock.Anything, mock.Anything).
Return(tt.mockStore.PublicDashboard, tt.mockStore.Err)
pd := &PublicDashboardServiceImpl{store: store}
got, err := pd.GenerateNewPublicDashboardUid(tt.args.ctx)
if !tt.wantErr(t, err, fmt.Sprintf("GenerateNewPublicDashboardUid(%v)", tt.args.ctx)) {
got, err := pd.NewPublicDashboardUid(tt.args.ctx)
if !tt.wantErr(t, err, fmt.Sprintf("NewPublicDashboardUid(%v)", tt.args.ctx)) {
return
}
if err == nil {
assert.NotEqual(t, got, tt.want, "GenerateNewPublicDashboardUid(%v)", tt.args.ctx)
assert.True(t, util.IsValidShortUID(got), "GenerateNewPublicDashboardUid(%v)", tt.args.ctx)
store.AssertNumberOfCalls(t, "GetPublicDashboardByUid", 1)
assert.NotEqual(t, got, tt.want, "NewPublicDashboardUid(%v)", tt.args.ctx)
assert.True(t, util.IsValidShortUID(got), "NewPublicDashboardUid(%v)", tt.args.ctx)
store.AssertNumberOfCalls(t, "Find", 1)
} else {
store.AssertNumberOfCalls(t, "GetPublicDashboardByUid", 3)
store.AssertNumberOfCalls(t, "Find", 3)
assert.True(t, errors.Is(err, ErrPublicDashboardFailedGenerateUniqueUid))
}
})
}
}
func TestPublicDashboardServiceImpl_GenerateNewPublicDashboardAccessToken(t *testing.T) {
func TestPublicDashboardServiceImpl_NewPublicDashboardAccessToken(t *testing.T) {
mockedDashboard := &PublicDashboard{
IsEnabled: true,
AnnotationsEnabled: false,
@ -899,22 +899,22 @@ func TestPublicDashboardServiceImpl_GenerateNewPublicDashboardAccessToken(t *tes
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
store := NewFakePublicDashboardStore(t)
store.On("GetPublicDashboardByAccessToken", mock.Anything, mock.Anything).
store.On("FindByAccessToken", mock.Anything, mock.Anything).
Return(tt.mockStore.PublicDashboard, tt.mockStore.Err)
pd := &PublicDashboardServiceImpl{store: store}
got, err := pd.GenerateNewPublicDashboardAccessToken(tt.args.ctx)
if !tt.wantErr(t, err, fmt.Sprintf("GenerateNewPublicDashboardAccessToken(%v)", tt.args.ctx)) {
got, err := pd.NewPublicDashboardAccessToken(tt.args.ctx)
if !tt.wantErr(t, err, fmt.Sprintf("NewPublicDashboardAccessToken(%v)", tt.args.ctx)) {
return
}
if err == nil {
assert.NotEqual(t, got, tt.want, "GenerateNewPublicDashboardAccessToken(%v)", tt.args.ctx)
assert.True(t, tokens.IsValidAccessToken(got), "GenerateNewPublicDashboardAccessToken(%v)", tt.args.ctx)
store.AssertNumberOfCalls(t, "GetPublicDashboardByAccessToken", 1)
assert.NotEqual(t, got, tt.want, "NewPublicDashboardAccessToken(%v)", tt.args.ctx)
assert.True(t, tokens.IsValidAccessToken(got), "NewPublicDashboardAccessToken(%v)", tt.args.ctx)
store.AssertNumberOfCalls(t, "FindByAccessToken", 1)
} else {
store.AssertNumberOfCalls(t, "GetPublicDashboardByAccessToken", 3)
store.AssertNumberOfCalls(t, "FindByAccessToken", 3)
assert.True(t, errors.Is(err, ErrPublicDashboardFailedGenerateAccessToken))
}
})