mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-28 04:04:55 +08:00
fix(router): fix refunds and payment_attempts kv flow (#2362)
This commit is contained in:
committed by
GitHub
parent
3d7e22a4f1
commit
ef0df7195d
@ -629,13 +629,9 @@ mod storage {
|
||||
}
|
||||
enums::MerchantStorageScheme::RedisKv => {
|
||||
let key = format!("{merchant_id}_{payment_id}");
|
||||
let lookup = self.get_lookup_by_lookup_id(&key).await?;
|
||||
|
||||
let pattern = db_utils::generate_hscan_pattern_for_refund(&lookup.sk_id);
|
||||
|
||||
self.get_redis_conn()
|
||||
.map_err(Into::<errors::StorageError>::into)?
|
||||
.hscan_and_deserialize(&key, &pattern, None)
|
||||
.hscan_and_deserialize(&key, "pa_*_ref_*", None)
|
||||
.await
|
||||
.change_context(errors::StorageError::KVError)
|
||||
}
|
||||
|
||||
@ -29,10 +29,7 @@ use crate::{
|
||||
diesel_error_to_data_error,
|
||||
lookup::ReverseLookupInterface,
|
||||
redis::kv_store::{PartitionKey, RedisConnInterface},
|
||||
utils::{
|
||||
generate_hscan_pattern_for_attempt, pg_connection_read, pg_connection_write,
|
||||
try_redis_get_else_try_database_get,
|
||||
},
|
||||
utils::{pg_connection_read, pg_connection_write, try_redis_get_else_try_database_get},
|
||||
DataModelExt, DatabaseStore, KVRouterStore, RouterStore,
|
||||
};
|
||||
|
||||
@ -800,16 +797,13 @@ impl<T: DatabaseStore> PaymentAttemptInterface for KVRouterStore<T> {
|
||||
}
|
||||
MerchantStorageScheme::RedisKv => {
|
||||
let key = format!("{merchant_id}_{payment_id}");
|
||||
let lookup = self.get_lookup_by_lookup_id(&key).await?;
|
||||
|
||||
let pattern = generate_hscan_pattern_for_attempt(&lookup.sk_id);
|
||||
|
||||
self.get_redis_conn()
|
||||
.map_err(|er| {
|
||||
let error = format!("{}", er);
|
||||
er.change_context(errors::StorageError::RedisError(error))
|
||||
})?
|
||||
.hscan_and_deserialize(&key, &pattern, None)
|
||||
.hscan_and_deserialize(&key, "pa_*", None)
|
||||
.await
|
||||
.change_context(errors::StorageError::KVError)
|
||||
}
|
||||
|
||||
@ -68,13 +68,3 @@ where
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
/// Generates hscan field pattern. Suppose the field is pa_1234 it will generate
|
||||
/// pa_*
|
||||
pub fn generate_hscan_pattern_for_attempt(sk: &str) -> String {
|
||||
sk.split('_')
|
||||
.take(1)
|
||||
.chain(["*"])
|
||||
.collect::<Vec<&str>>()
|
||||
.join("_")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user