Query history: Save user preferences in database (#47506)

pull/47624/head
Ivana Huckova 3 years ago committed by GitHub
parent cfaf058b20
commit 201557c6fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      pkg/api/dtos/prefs.go
  2. 2
      pkg/api/preferences.go
  3. 7
      pkg/models/preferences.go
  4. 24
      pkg/services/sqlstore/preferences.go

@ -8,6 +8,7 @@ type Prefs struct {
Timezone string `json:"timezone"`
WeekStart string `json:"weekStart"`
Navbar models.NavbarPreference `json:"navbar,omitempty"`
QueryHistory models.QueryHistoryPreference `json:"queryHistory,omitempty"`
}
// swagger:model
@ -21,6 +22,7 @@ type UpdatePrefsCmd struct {
Timezone string `json:"timezone"`
WeekStart string `json:"weekStart"`
Navbar *models.NavbarPreference `json:"navbar,omitempty"`
QueryHistory *models.QueryHistoryPreference `json:"queryHistory,omitempty"`
}
// swagger:model
@ -34,4 +36,5 @@ type PatchPrefsCmd struct {
Timezone *string `json:"timezone,omitempty"`
WeekStart *string `json:"weekStart,omitempty"`
Navbar *models.NavbarPreference `json:"navbar,omitempty"`
QueryHistory *models.QueryHistoryPreference `json:"queryHistory,omitempty"`
}

@ -53,6 +53,7 @@ func (hs *HTTPServer) getPreferencesFor(ctx context.Context, orgID, userID, team
if prefsQuery.Result.JsonData != nil {
dto.Navbar = prefsQuery.Result.JsonData.Navbar
dto.QueryHistory = prefsQuery.Result.JsonData.QueryHistory
}
return response.JSON(200, &dto)
@ -110,6 +111,7 @@ func (hs *HTTPServer) patchPreferencesFor(ctx context.Context, orgID, userID, te
WeekStart: dtoCmd.WeekStart,
HomeDashboardId: dtoCmd.HomeDashboardID,
Navbar: dtoCmd.Navbar,
QueryHistory: dtoCmd.QueryHistory,
}
if err := hs.SQLStore.PatchPreferences(ctx, &patchCmd); err != nil {

@ -49,8 +49,13 @@ type NavbarPreference struct {
SavedItems []NavLink `json:"savedItems"`
}
type QueryHistoryPreference struct {
HomeTab string `json:"homeTab"`
}
type PreferencesJsonData struct {
Navbar NavbarPreference `json:"navbar"`
QueryHistory QueryHistoryPreference `json:"queryHistory"`
}
// ---------------------
@ -83,6 +88,7 @@ type SavePreferencesCommand struct {
WeekStart string `json:"weekStart,omitempty"`
Theme string `json:"theme,omitempty"`
Navbar *NavbarPreference `json:"navbar,omitempty"`
QueryHistory *QueryHistoryPreference `json:"queryHistory,omitempty"`
}
type PatchPreferencesCommand struct {
@ -95,4 +101,5 @@ type PatchPreferencesCommand struct {
WeekStart *string `json:"weekStart,omitempty"`
Theme *string `json:"theme,omitempty"`
Navbar *NavbarPreference `json:"navbar,omitempty"`
QueryHistory *QueryHistoryPreference `json:"queryHistory,omitempty"`
}

@ -109,6 +109,11 @@ func (ss *SQLStore) SavePreferences(ctx context.Context, cmd *models.SavePrefere
if cmd.Navbar != nil {
prefs.JsonData.Navbar = *cmd.Navbar
}
if cmd.QueryHistory != nil {
prefs.JsonData.QueryHistory = *cmd.QueryHistory
}
_, err = sess.Insert(&prefs)
return err
}
@ -121,6 +126,16 @@ func (ss *SQLStore) SavePreferences(ctx context.Context, cmd *models.SavePrefere
prefs.JsonData.Navbar.SavedItems = cmd.Navbar.SavedItems
}
}
if cmd.QueryHistory != nil {
if prefs.JsonData == nil {
prefs.JsonData = &models.PreferencesJsonData{}
}
if cmd.QueryHistory.HomeTab != "" {
prefs.JsonData.QueryHistory.HomeTab = cmd.QueryHistory.HomeTab
}
}
prefs.HomeDashboardId = cmd.HomeDashboardId
prefs.Timezone = cmd.Timezone
prefs.WeekStart = cmd.WeekStart
@ -159,6 +174,15 @@ func (ss *SQLStore) PatchPreferences(ctx context.Context, cmd *models.PatchPrefe
}
}
if cmd.QueryHistory != nil {
if prefs.JsonData == nil {
prefs.JsonData = &models.PreferencesJsonData{}
}
if cmd.QueryHistory.HomeTab != "" {
prefs.JsonData.QueryHistory.HomeTab = cmd.QueryHistory.HomeTab
}
}
if cmd.HomeDashboardId != nil {
prefs.HomeDashboardId = *cmd.HomeDashboardId
}

Loading…
Cancel
Save