@@ -518,58 +518,65 @@ where
518518 from : Option < usize > ,
519519 to : Option < usize > ,
520520 ) -> StreamResult < ' static , models:: Result , GetScansIDResultsError > {
521- let q = match ( from, to) {
522- ( None , None ) => {
523- r#"
524- SELECT id, result_id, type, ip_address, hostname, oid, port, protocol, message,
525- detail_name, detail_value,
526- source_type, source_name, source_description
527- FROM results
528- WHERE id = ?"#
529- }
530- ( Some ( _) , None ) => {
531- r#"
532- SELECT id, result_id, type, ip_address, hostname, oid, port, protocol, message,
533- detail_name, detail_value,
534- source_type, source_name, source_description
535- FROM results
536- WHERE id = ?
537- AND result_id >= ?"#
538- }
539- ( None , Some ( _) ) => {
540- r#"
541- SELECT id, result_id, type, ip_address, hostname, oid, port, protocol, message,
542- detail_name, detail_value,
543- source_type, source_name, source_description
544- FROM results
545- WHERE id = ?
546- AND result_id <= ?"#
547- }
548- ( Some ( _) , Some ( _) ) => {
549- r#"
550- SELECT id, result_id, type, ip_address, hostname, oid, port, protocol, message,
551- detail_name, detail_value,
552- source_type, source_name, source_description
553- FROM results
554- WHERE id = ?
555- AND result_id <= ?
556- AND result_id >= ?"#
557- }
521+ const SQL_BASE : & str = r#"
522+ SELECT id, result_id, type, ip_address, hostname, oid, port, protocol, message,
523+ detail_name, detail_value,
524+ source_type, source_name, source_description
525+ FROM results
526+ WHERE id = ?
527+ "# ;
528+
529+ const SQL_BASE_AND_GTE : & str = r#"
530+ SELECT id, result_id, type, ip_address, hostname, oid, port, protocol, message,
531+ detail_name, detail_value,
532+ source_type, source_name, source_description
533+ FROM results
534+ WHERE id = ?
535+ AND result_id >= ?
536+ "# ;
537+
538+ const SQL_BASE_AND_LTE : & str = r#"
539+ SELECT id, result_id, type, ip_address, hostname, oid, port, protocol, message,
540+ detail_name, detail_value,
541+ source_type, source_name, source_description
542+ FROM results
543+ WHERE id = ?
544+ AND result_id <= ?
545+ "# ;
546+
547+ const SQL_BASE_AND_GTE_LTE : & str = r#"
548+ SELECT id, result_id, type, ip_address, hostname, oid, port, protocol, message,
549+ detail_name, detail_value,
550+ source_type, source_name, source_description
551+ FROM results
552+ WHERE id = ?
553+ AND result_id >= ?
554+ AND result_id <= ?
555+ "# ;
556+
557+ let sql: & ' static str = match ( from, to) {
558+ ( None , None ) => SQL_BASE ,
559+ ( Some ( _) , None ) => SQL_BASE_AND_GTE ,
560+ ( None , Some ( _) ) => SQL_BASE_AND_LTE ,
561+ ( Some ( _) , Some ( _) ) => SQL_BASE_AND_GTE_LTE ,
558562 } ;
559- let mut q = query ( q) . bind ( id) ;
560- if let Some ( from) = from {
561- q = q. bind ( from as i64 ) ;
563+ let mut query = sqlx:: query ( sql) . bind ( id) ;
564+
565+ if let Some ( from_id) = from {
566+ query = query. bind ( from_id as i64 ) ;
562567 }
563- if let Some ( to ) = to {
564- q = q . bind ( to as i64 ) ;
568+ if let Some ( to_id ) = to {
569+ query = query . bind ( to_id as i64 ) ;
565570 }
566571
567- Box :: new ( q. fetch ( & self . pool ) . map ( |r| {
568- r. map ( row_to_result)
569- . map_err ( |e| GetScansIDResultsError :: External ( Box :: new ( e) ) )
570- } ) )
572+ let result = query. fetch ( & self . pool ) . map ( |x| {
573+ x. map ( row_to_result)
574+ . map_err ( GetScansIDResultsError :: from_external)
575+ } ) ;
576+ Box :: new ( result)
571577 }
572578}
579+
573580impl < E > GetScansIdResultsId for Endpoints < E >
574581where
575582 E : Send + Sync ,
0 commit comments