Preferences: Add preferences kind and remove unused navbar settings (#59621)

This commit is contained in:
Ryan McKinley
2023-01-25 11:00:32 -08:00
committed by GitHub
parent 8b574e22b5
commit a0405912a8
24 changed files with 420 additions and 144 deletions
-26
View File
@@ -65,10 +65,6 @@ func (s *Service) GetWithDefaults(ctx context.Context, query *pref.GetPreference
res.JSONData.Language = p.JSONData.Language
}
if len(p.JSONData.Navbar.SavedItems) > 0 {
res.JSONData.Navbar = p.JSONData.Navbar
}
if p.JSONData.QueryHistory.HomeTab != "" {
res.JSONData.QueryHistory.HomeTab = p.JSONData.QueryHistory.HomeTab
}
@@ -134,9 +130,6 @@ func (s *Service) Save(ctx context.Context, cmd *pref.SavePreferenceCommand) err
Language: cmd.Language,
}
if cmd.Navbar != nil {
preference.JSONData.Navbar = *cmd.Navbar
}
if cmd.QueryHistory != nil {
preference.JSONData.QueryHistory = *cmd.QueryHistory
}
@@ -173,15 +166,6 @@ func (s *Service) Patch(ctx context.Context, cmd *pref.PatchPreferenceCommand) e
preference.JSONData.Language = *cmd.Language
}
if cmd.Navbar != nil {
if preference.JSONData == nil {
preference.JSONData = &pref.PreferenceJSONData{}
}
if cmd.Navbar.SavedItems != nil {
preference.JSONData.Navbar.SavedItems = cmd.Navbar.SavedItems
}
}
if cmd.QueryHistory != nil {
if preference.JSONData == nil {
preference.JSONData = &pref.PreferenceJSONData{}
@@ -210,16 +194,6 @@ func (s *Service) Patch(ctx context.Context, cmd *pref.PatchPreferenceCommand) e
preference.Updated = time.Now()
preference.Version += 1
// Wrap this in an if statement to maintain backwards compatibility
if cmd.Navbar != nil {
if preference.JSONData == nil {
preference.JSONData = &pref.PreferenceJSONData{}
}
if cmd.Navbar.SavedItems != nil {
preference.JSONData.Navbar.SavedItems = cmd.Navbar.SavedItems
}
}
if exists {
err = s.store.Update(ctx, preference)
} else {
+3 -40
View File
@@ -174,51 +174,15 @@ func TestGetDefaults_JSONData(t *testing.T) {
queryPreference := pref.QueryHistoryPreference{
HomeTab: "hometab",
}
userNavbarPreferences := pref.NavbarPreference{
SavedItems: []pref.NavLink{{
ID: "explore",
Text: "Explore",
Url: "/explore",
}},
}
orgNavbarPreferences := pref.NavbarPreference{
SavedItems: []pref.NavLink{{
ID: "alerting",
Text: "Alerting",
Url: "/alerting",
}},
}
team1NavbarPreferences := pref.NavbarPreference{
SavedItems: []pref.NavLink{{
ID: "dashboards",
Text: "Dashboards",
Url: "/dashboards",
}},
}
team2NavbarPreferences := pref.NavbarPreference{
SavedItems: []pref.NavLink{{
ID: "home",
Text: "Home",
Url: "/home",
}},
}
userPreferencesJsonData := pref.PreferenceJSONData{
Navbar: userNavbarPreferences,
QueryHistory: queryPreference,
}
orgPreferencesJsonData := pref.PreferenceJSONData{
Navbar: orgNavbarPreferences,
}
orgPreferencesJsonData := pref.PreferenceJSONData{}
orgPreferencesWithLanguageJsonData := pref.PreferenceJSONData{
Navbar: orgNavbarPreferences,
Language: "en-GB",
}
team2PreferencesJsonData := pref.PreferenceJSONData{
Navbar: team2NavbarPreferences,
}
team1PreferencesJsonData := pref.PreferenceJSONData{
Navbar: team1NavbarPreferences,
}
team2PreferencesJsonData := pref.PreferenceJSONData{}
team1PreferencesJsonData := pref.PreferenceJSONData{}
t.Run("users have precedence over org", func(t *testing.T) {
prefService := &Service{
@@ -274,7 +238,6 @@ func TestGetDefaults_JSONData(t *testing.T) {
WeekStart: &weekStart,
JSONData: &pref.PreferenceJSONData{
Language: "en-GB",
Navbar: userNavbarPreferences,
QueryHistory: queryPreference,
},
}, preference)
@@ -20,13 +20,6 @@ func testIntegrationPreferencesDataAccess(t *testing.T, fn getStore) {
weekStartOne := "1"
ss := db.InitTestDB(t)
prefStore := fn(ss)
orgNavbarPreferences := pref.NavbarPreference{
SavedItems: []pref.NavLink{{
ID: "alerting",
Text: "Alerting",
Url: "/alerting",
}},
}
t.Run("Get with saved org and user home dashboard returns not found", func(t *testing.T) {
query := &pref.Preference{OrgID: 1, UserID: 1, TeamID: 2}
@@ -124,7 +117,7 @@ func testIntegrationPreferencesDataAccess(t *testing.T, fn getStore) {
Timezone: "browser",
HomeDashboardID: 5,
WeekStart: &weekStartOne,
JSONData: &pref.PreferenceJSONData{Navbar: orgNavbarPreferences},
JSONData: &pref.PreferenceJSONData{},
Created: time.Now(),
Updated: time.Now(),
})