(ctx context.Context, find *FindUserSetting)
| 82 | } |
| 83 | |
| 84 | func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*storepb.UserSetting, error) { |
| 85 | if find.UserID != nil { |
| 86 | if cache, ok := s.userSettingCache.Get(ctx, getUserSettingCacheKey(*find.UserID, find.Key.String())); ok { |
| 87 | userSetting, ok := cache.(*storepb.UserSetting) |
| 88 | if ok { |
| 89 | return userSetting, nil |
| 90 | } |
| 91 | } |
| 92 | } |
| 93 | |
| 94 | list, err := s.ListUserSettings(ctx, find) |
| 95 | if err != nil { |
| 96 | return nil, err |
| 97 | } |
| 98 | if len(list) == 0 { |
| 99 | return nil, nil |
| 100 | } |
| 101 | if len(list) > 1 { |
| 102 | return nil, errors.Errorf("expected 1 user setting, but got %d", len(list)) |
| 103 | } |
| 104 | |
| 105 | userSetting := list[0] |
| 106 | s.userSettingCache.Set(ctx, getUserSettingCacheKey(userSetting.UserId, userSetting.Key.String()), userSetting) |
| 107 | return userSetting, nil |
| 108 | } |
| 109 | |
| 110 | func (s *Store) DeleteUserSettings(ctx context.Context, delete *DeleteUserSetting) error { |
| 111 | existing, err := s.ListUserSettings(ctx, &FindUserSetting{ |
no test coverage detected