@@ -25,7 +25,7 @@ use crate::{
2525 DownloadedWikipediaSuggestion , Record , SuggestRecordId ,
2626 } ,
2727 schema:: { clear_database, SuggestConnectionInitializer } ,
28- suggestion:: { cook_raw_suggestion_url, AmpSuggestionType , Suggestion } ,
28+ suggestion:: { cook_raw_suggestion_url, AmpSuggestionType , Suggestion , SuggestionIcon } ,
2929 Result , SuggestionQuery ,
3030} ;
3131
@@ -299,7 +299,7 @@ impl<'a> SuggestDao<'a> {
299299 amp.iab_category,
300300 amp.impression_url,
301301 amp.click_url,
302- i.data AS icon ,
302+ i.data AS icon_data ,
303303 i.mimetype AS icon_mimetype
304304 FROM
305305 amp_custom_details amp
@@ -315,6 +315,12 @@ impl<'a> SuggestDao<'a> {
315315 let cooked_url = cook_raw_suggestion_url ( & raw_url) ;
316316 let raw_click_url = row. get :: < _ , String > ( "click_url" ) ?;
317317 let cooked_click_url = cook_raw_suggestion_url ( & raw_click_url) ;
318+ let icon_data = row. get :: < _ , Option < _ > > ( "icon_data" ) ?;
319+ let icon_mime_type = row. get :: < _ , Option < _ > > ( "icon_mimetype" ) ?;
320+ let icon = icon_data. map ( |data| SuggestionIcon {
321+ data,
322+ mime_type : icon_mime_type. unwrap_or_default ( ) ,
323+ } ) ;
318324
319325 Ok ( Suggestion :: Amp {
320326 block_id : row. get ( "block_id" ) ?,
@@ -325,8 +331,7 @@ impl<'a> SuggestDao<'a> {
325331 raw_url,
326332 full_keyword : full_keyword_from_db
327333 . unwrap_or_else ( || full_keyword ( keyword_lowercased, & keywords) ) ,
328- icon : row. get ( "icon" ) ?,
329- icon_mimetype : row. get ( "icon_mimetype" ) ?,
334+ icon,
330335 impression_url : row. get ( "impression_url" ) ?,
331336 click_url : cooked_click_url,
332337 raw_click_url,
@@ -378,7 +383,7 @@ impl<'a> SuggestDao<'a> {
378383 } ,
379384 |row| row. get ( 0 ) ,
380385 ) ?;
381- let ( icon, icon_mimetype ) = self
386+ let icon = self
382387 . conn
383388 . try_query_row (
384389 "SELECT i.data, i.mimetype
@@ -390,21 +395,20 @@ impl<'a> SuggestDao<'a> {
390395 ":suggestion_id" : suggestion_id
391396 } ,
392397 |row| -> Result < _ > {
393- Ok ( (
394- row. get :: < _ , Option < Vec < u8 > > > ( 0 ) ?,
395- row. get :: < _ , Option < String > > ( 1 ) ?,
396- ) )
398+ Ok ( Some ( SuggestionIcon {
399+ data : row. get :: < _ , Vec < u8 > > ( 0 ) ?,
400+ mime_type : row. get :: < _ , String > ( 1 ) ?,
401+ } ) )
397402 } ,
398403 true ,
399404 ) ?
400- . unwrap_or ( ( None , None ) ) ;
405+ . unwrap_or ( None ) ;
401406
402407 Ok ( Suggestion :: Wikipedia {
403408 title,
404409 url : raw_url,
405410 full_keyword : full_keyword ( keyword_lowercased, & keywords) ,
406411 icon,
407- icon_mimetype,
408412 } )
409413 } ,
410414 ) ?;
@@ -986,7 +990,7 @@ impl<'a> SuggestDao<'a> {
986990 }
987991
988992 /// Inserts or replaces an icon for a suggestion into the database.
989- pub fn put_icon ( & mut self , icon_id : & str , data : & [ u8 ] , mimetype : & str ) -> Result < ( ) > {
993+ pub fn put_icon ( & mut self , icon_id : & str , data : & [ u8 ] , mime_type : & str ) -> Result < ( ) > {
990994 self . conn . execute (
991995 "INSERT OR REPLACE INTO icons(
992996 id,
@@ -1001,7 +1005,7 @@ impl<'a> SuggestDao<'a> {
10011005 named_params ! {
10021006 ":id" : icon_id,
10031007 ":data" : data,
1004- ":mimetype" : mimetype ,
1008+ ":mimetype" : mime_type ,
10051009 } ,
10061010 ) ?;
10071011 Ok ( ( ) )
0 commit comments