Skip to content

Commit fb23bad

Browse files
authored
Merge pull request #514 from andrei-21/fix/remove-payment
Fix removing payment from in-memory store
2 parents a6cb7a3 + c32b646 commit fb23bad

File tree

1 file changed

+22
-25
lines changed

1 file changed

+22
-25
lines changed

src/payment/store.rs

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -641,25 +641,29 @@ where
641641
}
642642

643643
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(
656649
PAYMENT_INFO_PERSISTENCE_PRIMARY_NAMESPACE,
657650
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(())
663667
}
664668

665669
pub(crate) fn get(&self, id: &PaymentId) -> Option<PaymentDetails> {
@@ -682,14 +686,7 @@ where
682686
pub(crate) fn list_filter<F: FnMut(&&PaymentDetails) -> bool>(
683687
&self, f: F,
684688
) -> 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>>()
693690
}
694691

695692
fn persist_info(&self, id: &PaymentId, payment: &PaymentDetails) -> Result<(), Error> {

0 commit comments

Comments
 (0)