Navigation: Backend to save navigation customization into preferences (#89783)

This commit is contained in:
Joao Silva
2024-07-03 10:40:51 +01:00
committed by GitHub
parent 68e30e2b4b
commit 9004b58851
12 changed files with 106 additions and 3 deletions
+7
View File
@@ -67,6 +67,7 @@ type SavePreferenceCommand struct {
Language string `json:"language,omitempty"`
QueryHistory *QueryHistoryPreference `json:"queryHistory,omitempty"`
CookiePreferences []CookieType `json:"cookiePreferences,omitempty"`
Navbar *NavbarPreference `json:"navbar,omitempty"`
}
type PatchPreferenceCommand struct {
@@ -82,18 +83,24 @@ type PatchPreferenceCommand struct {
Language *string `json:"language,omitempty"`
QueryHistory *QueryHistoryPreference `json:"queryHistory,omitempty"`
CookiePreferences []CookieType `json:"cookiePreferences,omitempty"`
Navbar *NavbarPreference `json:"navbar,omitempty"`
}
type PreferenceJSONData struct {
Language string `json:"language"`
QueryHistory QueryHistoryPreference `json:"queryHistory"`
CookiePreferences map[string]struct{} `json:"cookiePreferences"`
Navbar NavbarPreference `json:"navbar"`
}
type QueryHistoryPreference struct {
HomeTab string `json:"homeTab"`
}
type NavbarPreference struct {
SavedItemIds []string `json:"savedItemIds"`
}
func (j *PreferenceJSONData) FromDB(data []byte) error {
dec := json.NewDecoder(bytes.NewBuffer(data))
dec.UseNumber()
+8
View File
@@ -46,6 +46,7 @@ func UpdatePreferencesFor(ctx context.Context,
HomeDashboardID: dtoCmd.HomeDashboardID,
QueryHistory: dtoCmd.QueryHistory,
CookiePreferences: dtoCmd.Cookies,
Navbar: dtoCmd.Navbar,
}
if err := preferenceService.Save(ctx, &saveCmd); err != nil {
@@ -96,6 +97,13 @@ func GetPreferencesFor(ctx context.Context,
dto.Language = &preference.JSONData.Language
}
if preference.JSONData.Navbar.SavedItemIds != nil {
dto.Navbar = &preferences.NavbarPreference{
SavedItemIds: []string{},
}
dto.Navbar.SavedItemIds = preference.JSONData.Navbar.SavedItemIds
}
if preference.JSONData.QueryHistory.HomeTab != "" {
dto.QueryHistory = &preferences.QueryHistoryPreference{
HomeTab: &preference.JSONData.QueryHistory.HomeTab,
+14
View File
@@ -71,6 +71,10 @@ func (s *Service) GetWithDefaults(ctx context.Context, query *pref.GetPreference
res.JSONData.QueryHistory.HomeTab = p.JSONData.QueryHistory.HomeTab
}
if p.JSONData.Navbar.SavedItemIds != nil {
res.JSONData.Navbar.SavedItemIds = p.JSONData.Navbar.SavedItemIds
}
if p.JSONData.CookiePreferences != nil {
res.JSONData.CookiePreferences = p.JSONData.CookiePreferences
}
@@ -170,6 +174,13 @@ func (s *Service) Patch(ctx context.Context, cmd *pref.PatchPreferenceCommand) e
preference.JSONData.Language = *cmd.Language
}
if cmd.Navbar != nil && cmd.Navbar.SavedItemIds != nil {
if preference.JSONData == nil {
preference.JSONData = &pref.PreferenceJSONData{}
}
preference.JSONData.Navbar.SavedItemIds = cmd.Navbar.SavedItemIds
}
if cmd.QueryHistory != nil {
if preference.JSONData == nil {
preference.JSONData = &pref.PreferenceJSONData{}
@@ -257,6 +268,9 @@ func preferenceData(cmd *pref.SavePreferenceCommand) (*pref.PreferenceJSONData,
Language: cmd.Language,
}
if cmd.Navbar != nil {
jsonData.Navbar = *cmd.Navbar
}
if cmd.QueryHistory != nil {
jsonData.QueryHistory = *cmd.QueryHistory
}