@@ -27,7 +27,7 @@ use crate::{
2727 } ,
2828 schema:: { clear_database, 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_data ,
294294 i.mimetype AS icon_mimetype
295295 FROM
296296 amp_custom_details amp
@@ -306,6 +306,12 @@ 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_data = row. get :: < _ , Option < _ > > ( "icon_data" ) ?;
310+ let icon_mime_type = row. get :: < _ , Option < _ > > ( "icon_mimetype" ) ?;
311+ let icon = icon_data. map ( |data| SuggestionIcon {
312+ data,
313+ mime_type : icon_mime_type. unwrap_or_default ( ) ,
314+ } ) ;
309315
310316 Ok ( Suggestion :: Amp {
311317 block_id : row. get ( "block_id" ) ?,
@@ -316,8 +322,7 @@ impl<'a> SuggestDao<'a> {
316322 raw_url,
317323 full_keyword : full_keyword_from_db
318324 . unwrap_or_else ( || full_keyword ( keyword_lowercased, & keywords) ) ,
319- icon : row. get ( "icon" ) ?,
320- icon_mimetype : row. get ( "icon_mimetype" ) ?,
325+ icon,
321326 impression_url : row. get ( "impression_url" ) ?,
322327 click_url : cooked_click_url,
323328 raw_click_url,
@@ -368,7 +373,7 @@ impl<'a> SuggestDao<'a> {
368373 } ,
369374 |row| row. get ( 0 ) ,
370375 ) ?;
371- let ( icon, icon_mimetype ) = self
376+ let icon = self
372377 . conn
373378 . try_query_row (
374379 "SELECT i.data, i.mimetype
@@ -380,21 +385,20 @@ impl<'a> SuggestDao<'a> {
380385 ":suggestion_id" : suggestion_id
381386 } ,
382387 |row| -> Result < _ > {
383- Ok ( (
384- row. get :: < _ , Option < Vec < u8 > > > ( 0 ) ?,
385- row. get :: < _ , Option < String > > ( 1 ) ?,
386- ) )
388+ Ok ( Some ( SuggestionIcon {
389+ data : row. get :: < _ , Vec < u8 > > ( 0 ) ?,
390+ mime_type : row. get :: < _ , String > ( 1 ) ?,
391+ } ) )
387392 } ,
388393 true ,
389394 ) ?
390- . unwrap_or ( ( None , None ) ) ;
395+ . unwrap_or ( None ) ;
391396
392397 Ok ( Suggestion :: Wikipedia {
393398 title,
394399 url : raw_url,
395400 full_keyword : full_keyword ( keyword_lowercased, & keywords) ,
396401 icon,
397- icon_mimetype,
398402 } )
399403 } ,
400404 ) ?;
@@ -1171,7 +1175,7 @@ impl<'a> SuggestDao<'a> {
11711175 }
11721176
11731177 /// Inserts or replaces an icon for a suggestion into the database.
1174- pub fn put_icon ( & mut self , icon_id : & str , data : & [ u8 ] , mimetype : & str ) -> Result < ( ) > {
1178+ pub fn put_icon ( & mut self , icon_id : & str , data : & [ u8 ] , mime_type : & str ) -> Result < ( ) > {
11751179 self . conn . execute (
11761180 "INSERT OR REPLACE INTO icons(
11771181 id,
@@ -1186,7 +1190,7 @@ impl<'a> SuggestDao<'a> {
11861190 named_params ! {
11871191 ":id" : icon_id,
11881192 ":data" : data,
1189- ":mimetype" : mimetype ,
1193+ ":mimetype" : mime_type ,
11901194 } ,
11911195 ) ?;
11921196 Ok ( ( ) )
0 commit comments