@@ -641,25 +641,29 @@ where
641
641
}
642
642
643
643
pub ( crate ) fn remove ( & self , id : & PaymentId ) -> Result < ( ) , Error > {
644
- let store_key = hex_utils:: to_string ( & id. 0 ) ;
645
- self . kv_store
646
- . remove (
647
- PAYMENT_INFO_PERSISTENCE_PRIMARY_NAMESPACE ,
648
- PAYMENT_INFO_PERSISTENCE_SECONDARY_NAMESPACE ,
649
- & store_key,
650
- false ,
651
- )
652
- . map_err ( |e| {
653
- log_error ! (
654
- self . logger,
655
- "Removing payment data for key {}/{}/{} failed due to: {}" ,
644
+ let removed = self . payments . lock ( ) . unwrap ( ) . remove ( id) . is_some ( ) ;
645
+ if removed {
646
+ let store_key = hex_utils:: to_string ( & id. 0 ) ;
647
+ self . kv_store
648
+ . remove (
656
649
PAYMENT_INFO_PERSISTENCE_PRIMARY_NAMESPACE ,
657
650
PAYMENT_INFO_PERSISTENCE_SECONDARY_NAMESPACE ,
658
- store_key,
659
- e
660
- ) ;
661
- Error :: PersistenceFailed
662
- } )
651
+ & store_key,
652
+ false ,
653
+ )
654
+ . map_err ( |e| {
655
+ log_error ! (
656
+ self . logger,
657
+ "Removing payment data for key {}/{}/{} failed due to: {}" ,
658
+ PAYMENT_INFO_PERSISTENCE_PRIMARY_NAMESPACE ,
659
+ PAYMENT_INFO_PERSISTENCE_SECONDARY_NAMESPACE ,
660
+ store_key,
661
+ e
662
+ ) ;
663
+ Error :: PersistenceFailed
664
+ } ) ?;
665
+ }
666
+ Ok ( ( ) )
663
667
}
664
668
665
669
pub ( crate ) fn get ( & self , id : & PaymentId ) -> Option < PaymentDetails > {
@@ -682,14 +686,7 @@ where
682
686
pub ( crate ) fn list_filter < F : FnMut ( & & PaymentDetails ) -> bool > (
683
687
& self , f : F ,
684
688
) -> Vec < PaymentDetails > {
685
- self . payments
686
- . lock ( )
687
- . unwrap ( )
688
- . iter ( )
689
- . map ( |( _, p) | p)
690
- . filter ( f)
691
- . cloned ( )
692
- . collect :: < Vec < PaymentDetails > > ( )
689
+ self . payments . lock ( ) . unwrap ( ) . values ( ) . filter ( f) . cloned ( ) . collect :: < Vec < PaymentDetails > > ( )
693
690
}
694
691
695
692
fn persist_info ( & self , id : & PaymentId , payment : & PaymentDetails ) -> Result < ( ) , Error > {
0 commit comments