Skip to content

Commit 2f0fa91

Browse files
committed
Bug 1884816 - Expose icon information for suggestion as struct
1 parent f44e9d0 commit 2f0fa91

File tree

6 files changed

+723
-729
lines changed

6 files changed

+723
-729
lines changed

components/suggest/src/db.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use crate::{
2727
},
2828
schema::{SuggestConnectionInitializer, VERSION},
2929
store::{UnparsableRecord, UnparsableRecords},
30-
suggestion::{cook_raw_suggestion_url, AmpSuggestionType, Suggestion},
30+
suggestion::{cook_raw_suggestion_url, AmpSuggestionType, Suggestion, SuggestionIcon},
3131
Result, SuggestionQuery,
3232
};
3333

@@ -290,7 +290,7 @@ impl<'a> SuggestDao<'a> {
290290
amp.iab_category,
291291
amp.impression_url,
292292
amp.click_url,
293-
i.data AS icon,
293+
i.data AS icon_content,
294294
i.mimetype AS icon_mimetype
295295
FROM
296296
amp_custom_details amp
@@ -306,6 +306,13 @@ impl<'a> SuggestDao<'a> {
306306
let cooked_url = cook_raw_suggestion_url(&raw_url);
307307
let raw_click_url = row.get::<_, String>("click_url")?;
308308
let cooked_click_url = cook_raw_suggestion_url(&raw_click_url);
309+
let icon = match row.get("icon_content")? {
310+
Some(content) => Some(SuggestionIcon {
311+
content,
312+
mime_type: row.get("icon_mimetype")?,
313+
}),
314+
_ => None,
315+
};
309316

310317
Ok(Suggestion::Amp {
311318
block_id: row.get("block_id")?,
@@ -316,8 +323,7 @@ impl<'a> SuggestDao<'a> {
316323
raw_url,
317324
full_keyword: full_keyword_from_db
318325
.unwrap_or_else(|| full_keyword(keyword_lowercased, &keywords)),
319-
icon: row.get("icon")?,
320-
icon_mimetype: row.get("icon_mimetype")?,
326+
icon,
321327
impression_url: row.get("impression_url")?,
322328
click_url: cooked_click_url,
323329
raw_click_url,
@@ -368,7 +374,7 @@ impl<'a> SuggestDao<'a> {
368374
},
369375
|row| row.get(0),
370376
)?;
371-
let (icon, icon_mimetype) = self
377+
let icon = self
372378
.conn
373379
.try_query_row(
374380
"SELECT i.data, i.mimetype
@@ -380,21 +386,20 @@ impl<'a> SuggestDao<'a> {
380386
":suggestion_id": suggestion_id
381387
},
382388
|row| -> Result<_> {
383-
Ok((
384-
row.get::<_, Option<Vec<u8>>>(0)?,
385-
row.get::<_, Option<String>>(1)?,
386-
))
389+
Ok(Some(SuggestionIcon {
390+
content: row.get::<_, Vec<u8>>(0)?,
391+
mime_type: row.get::<_, String>(1)?,
392+
}))
387393
},
388394
true,
389395
)?
390-
.unwrap_or((None, None));
396+
.unwrap_or(None);
391397

392398
Ok(Suggestion::Wikipedia {
393399
title,
394400
url: raw_url,
395401
full_keyword: full_keyword(keyword_lowercased, &keywords),
396402
icon,
397-
icon_mimetype,
398403
})
399404
},
400405
)?;

components/suggest/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub use config::{SuggestGlobalConfig, SuggestProviderConfig};
2020
pub use error::SuggestApiError;
2121
pub use provider::SuggestionProvider;
2222
pub use store::{SuggestIngestionConstraints, SuggestStore, SuggestStoreBuilder};
23-
pub use suggestion::{raw_suggestion_url_matches, Suggestion};
23+
pub use suggestion::{raw_suggestion_url_matches, Suggestion, SuggestionIcon};
2424

2525
pub(crate) type Result<T> = std::result::Result<T, error::Error>;
2626
pub type SuggestApiResult<T> = std::result::Result<T, error::SuggestApiError>;

0 commit comments

Comments
 (0)