ddotthomas commited on
Commit
bfeb812
·
1 Parent(s): ddb10f6

fix: modify cache key with engines used for search

Browse files
Files changed (1) hide show
  1. src/server/routes/search.rs +14 -1
src/server/routes/search.rs CHANGED
@@ -123,11 +123,24 @@ async fn results(
123
  config.safe_search,
124
  );
125
 
126
- let cache_key = format!(
127
  "http://{}:{}/search?q={}&page={}&safesearch={}",
128
  config.binding_ip, config.port, query, page, safe_search_level
129
  );
130
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  // fetch the cached results json.
132
  let cached_results = cache.cached_results(&cache_key).await;
133
  // check if fetched cache results was indeed fetched or it was an error and if so
 
123
  config.safe_search,
124
  );
125
 
126
+ let mut cache_key = format!(
127
  "http://{}:{}/search?q={}&page={}&safesearch={}",
128
  config.binding_ip, config.port, query, page, safe_search_level
129
  );
130
 
131
+ // Modify the cache key adding each enabled search engine to the string
132
+ if let Some(cookie_value) = &cookie_value {
133
+ let mut engines: Vec<String> = cookie_value
134
+ .engines
135
+ .iter()
136
+ .map(|s| String::from(*s))
137
+ .collect::<Vec<String>>();
138
+
139
+ // We sort the list of engine so the cache keys will match between users. The cookie's list of engines is unordered.
140
+ engines.sort();
141
+ cache_key = cache_key + &(engines.join(""));
142
+ }
143
+
144
  // fetch the cached results json.
145
  let cached_results = cache.cached_results(&cache_key).await;
146
  // check if fetched cache results was indeed fetched or it was an error and if so