Chore: Propagate context for preferences (#41167)

Ref #36734
This commit is contained in:
Marcus Efraimsson
2021-11-02 13:41:45 +01:00
committed by GitHub
parent ad888813c6
commit 1a89d97fed
6 changed files with 61 additions and 58 deletions
+18 -16
View File
@@ -10,9 +10,9 @@ import (
)
func (ss *SQLStore) addPreferencesQueryAndCommandHandlers() {
bus.AddHandler("sql", GetPreferences)
bus.AddHandlerCtx("sql", ss.GetPreferences)
bus.AddHandlerCtx("sql", ss.GetPreferencesWithDefaults)
bus.AddHandler("sql", SavePreferences)
bus.AddHandlerCtx("sql", ss.SavePreferences)
}
func (ss *SQLStore) GetPreferencesWithDefaults(ctx context.Context, query *models.GetPreferencesWithDefaultsQuery) error {
@@ -68,25 +68,27 @@ func (ss *SQLStore) GetPreferencesWithDefaults(ctx context.Context, query *model
})
}
func GetPreferences(query *models.GetPreferencesQuery) error {
var prefs models.Preferences
exists, err := x.Where("org_id=? AND user_id=? AND team_id=?", query.OrgId, query.UserId, query.TeamId).Get(&prefs)
func (ss *SQLStore) GetPreferences(ctx context.Context, query *models.GetPreferencesQuery) error {
return ss.WithDbSession(ctx, func(sess *DBSession) error {
var prefs models.Preferences
exists, err := sess.Where("org_id=? AND user_id=? AND team_id=?", query.OrgId, query.UserId, query.TeamId).Get(&prefs)
if err != nil {
return err
}
if err != nil {
return err
}
if exists {
query.Result = &prefs
} else {
query.Result = new(models.Preferences)
}
if exists {
query.Result = &prefs
} else {
query.Result = new(models.Preferences)
}
return nil
return nil
})
}
func SavePreferences(cmd *models.SavePreferencesCommand) error {
return inTransaction(func(sess *DBSession) error {
func (ss *SQLStore) SavePreferences(ctx context.Context, cmd *models.SavePreferencesCommand) error {
return ss.WithTransactionalDbSession(ctx, func(sess *DBSession) error {
var prefs models.Preferences
exists, err := sess.Where("org_id=? AND user_id=? AND team_id=?", cmd.OrgId, cmd.UserId, cmd.TeamId).Get(&prefs)
if err != nil {
+18 -18
View File
@@ -27,9 +27,9 @@ func TestPreferencesDataAccess(t *testing.T) {
})
t.Run("GetPreferencesWithDefaults with saved org and user home dashboard should return user home dashboard", func(t *testing.T) {
err := SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
err := ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
require.NoError(t, err)
query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1, UserId: 1}}
@@ -39,9 +39,9 @@ func TestPreferencesDataAccess(t *testing.T) {
})
t.Run("GetPreferencesWithDefaults with saved org and other user home dashboard should return org home dashboard", func(t *testing.T) {
err := SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
err := ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
require.NoError(t, err)
query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1, UserId: 2}}
@@ -51,11 +51,11 @@ func TestPreferencesDataAccess(t *testing.T) {
})
t.Run("GetPreferencesWithDefaults with saved org and teams home dashboard should return last team home dashboard", func(t *testing.T) {
err := SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
err := ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
require.NoError(t, err)
query := &models.GetPreferencesWithDefaultsQuery{
@@ -67,11 +67,11 @@ func TestPreferencesDataAccess(t *testing.T) {
})
t.Run("GetPreferencesWithDefaults with saved org and other teams home dashboard should return org home dashboard", func(t *testing.T) {
err := SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
err := ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
require.NoError(t, err)
query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1}}
@@ -81,13 +81,13 @@ func TestPreferencesDataAccess(t *testing.T) {
})
t.Run("GetPreferencesWithDefaults with saved org, teams and user home dashboard should return user home dashboard", func(t *testing.T) {
err := SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
err := ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
require.NoError(t, err)
query := &models.GetPreferencesWithDefaultsQuery{
@@ -99,13 +99,13 @@ func TestPreferencesDataAccess(t *testing.T) {
})
t.Run("GetPreferencesWithDefaults with saved org, other teams and user home dashboard should return org home dashboard", func(t *testing.T) {
err := SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
err := ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
require.NoError(t, err)
err = SavePreferences(&models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
require.NoError(t, err)
query := &models.GetPreferencesWithDefaultsQuery{
+4 -4
View File
@@ -245,7 +245,7 @@ func TestUserDataAccess(t *testing.T) {
})
require.Nil(t, err)
err = SavePreferences(&models.SavePreferencesCommand{
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{
UserId: users[1].Id, OrgId: users[0].OrgId, HomeDashboardId: 1, Theme: "dark",
})
require.Nil(t, err)
@@ -267,7 +267,7 @@ func TestUserDataAccess(t *testing.T) {
require.Len(t, permQuery.Result, 0)
prefsQuery := &models.GetPreferencesQuery{OrgId: users[0].OrgId, UserId: users[1].Id}
err = GetPreferences(prefsQuery)
err = ss.GetPreferences(context.Background(), prefsQuery)
require.Nil(t, err)
require.EqualValues(t, prefsQuery.Result.OrgId, 0)
@@ -296,7 +296,7 @@ func TestUserDataAccess(t *testing.T) {
})
require.Nil(t, err)
err = SavePreferences(&models.SavePreferencesCommand{
err = ss.SavePreferences(context.Background(), &models.SavePreferencesCommand{
UserId: users[1].Id, OrgId: users[0].OrgId, HomeDashboardId: 1, Theme: "dark",
})
require.Nil(t, err)
@@ -353,7 +353,7 @@ func TestUserDataAccess(t *testing.T) {
require.Len(t, permQuery.Result, 0)
prefsQuery = &models.GetPreferencesQuery{OrgId: users[0].OrgId, UserId: users[1].Id}
err = GetPreferences(prefsQuery)
err = ss.GetPreferences(context.Background(), prefsQuery)
require.Nil(t, err)
require.EqualValues(t, prefsQuery.Result.OrgId, 0)