mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-27 19:46:48 +08:00
fix: empty payment attempts on payment retrieve (#3447)
This commit is contained in:
@ -932,12 +932,23 @@ impl<T: DatabaseStore> PaymentAttemptInterface for KVRouterStore<T> {
|
||||
}
|
||||
MerchantStorageScheme::RedisKv => {
|
||||
let key = format!("mid_{merchant_id}_pid_{payment_id}");
|
||||
|
||||
Box::pin(try_redis_get_else_try_database_get(
|
||||
async {
|
||||
kv_wrapper(self, KvOperation::<DieselPaymentAttempt>::Scan("pa_*"), key)
|
||||
.await
|
||||
.change_context(errors::StorageError::KVError)?
|
||||
.await?
|
||||
.try_into_scan()
|
||||
.change_context(errors::StorageError::KVError)
|
||||
},
|
||||
|| async {
|
||||
self.router_store
|
||||
.find_attempts_by_merchant_id_payment_id(
|
||||
merchant_id,
|
||||
payment_id,
|
||||
storage_scheme,
|
||||
)
|
||||
.await
|
||||
},
|
||||
))
|
||||
.await
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,7 +131,16 @@ where
|
||||
}
|
||||
|
||||
KvOperation::Scan(pattern) => {
|
||||
let result: Vec<T> = redis_conn.hscan_and_deserialize(key, pattern, None).await?;
|
||||
let result: Vec<T> = redis_conn
|
||||
.hscan_and_deserialize(key, pattern, None)
|
||||
.await
|
||||
.and_then(|result| {
|
||||
if result.is_empty() {
|
||||
Err(RedisError::NotFound).into_report()
|
||||
} else {
|
||||
Ok(result)
|
||||
}
|
||||
})?;
|
||||
Ok(KvResult::Scan(result))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user