Skip to content

Commit 12b5341

Browse files
authored
fix: fetch data directly from DB in OLAP functions (#2475)
1 parent 3f1e7c2 commit 12b5341

File tree

2 files changed

+46
-74
lines changed

2 files changed

+46
-74
lines changed

crates/router/src/db/refund.rs

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -638,61 +638,53 @@ mod storage {
638638
&self,
639639
merchant_id: &str,
640640
refund_details: &api_models::refunds::RefundListRequest,
641-
storage_scheme: enums::MerchantStorageScheme,
641+
_storage_scheme: enums::MerchantStorageScheme,
642642
limit: i64,
643643
offset: i64,
644644
) -> CustomResult<Vec<diesel_models::refund::Refund>, errors::StorageError> {
645-
match storage_scheme {
646-
enums::MerchantStorageScheme::PostgresOnly => {
647-
let conn = connection::pg_connection_read(self).await?;
648-
<diesel_models::refund::Refund as storage_types::RefundDbExt>::filter_by_constraints(&conn, merchant_id, refund_details, limit, offset)
649-
.await
650-
.map_err(Into::into)
651-
.into_report()
652-
}
653-
654-
enums::MerchantStorageScheme::RedisKv => Err(errors::StorageError::KVError.into()),
655-
}
645+
let conn = connection::pg_connection_read(self).await?;
646+
<diesel_models::refund::Refund as storage_types::RefundDbExt>::filter_by_constraints(
647+
&conn,
648+
merchant_id,
649+
refund_details,
650+
limit,
651+
offset,
652+
)
653+
.await
654+
.map_err(Into::into)
655+
.into_report()
656656
}
657657

658658
#[cfg(feature = "olap")]
659659
async fn filter_refund_by_meta_constraints(
660660
&self,
661661
merchant_id: &str,
662662
refund_details: &api_models::refunds::TimeRange,
663-
storage_scheme: enums::MerchantStorageScheme,
663+
_storage_scheme: enums::MerchantStorageScheme,
664664
) -> CustomResult<api_models::refunds::RefundListMetaData, errors::StorageError> {
665-
match storage_scheme {
666-
enums::MerchantStorageScheme::PostgresOnly => {
667-
let conn = connection::pg_connection_read(self).await?;
668-
<diesel_models::refund::Refund as storage_types::RefundDbExt>::filter_by_meta_constraints(&conn, merchant_id, refund_details)
665+
let conn = connection::pg_connection_read(self).await?;
666+
<diesel_models::refund::Refund as storage_types::RefundDbExt>::filter_by_meta_constraints(&conn, merchant_id, refund_details)
669667
.await
670668
.map_err(Into::into)
671669
.into_report()
672-
}
673-
674-
enums::MerchantStorageScheme::RedisKv => Err(errors::StorageError::KVError.into()),
675-
}
676670
}
677671

678672
#[cfg(feature = "olap")]
679673
async fn get_total_count_of_refunds(
680674
&self,
681675
merchant_id: &str,
682676
refund_details: &api_models::refunds::RefundListRequest,
683-
storage_scheme: enums::MerchantStorageScheme,
677+
_storage_scheme: enums::MerchantStorageScheme,
684678
) -> CustomResult<i64, errors::StorageError> {
685-
match storage_scheme {
686-
enums::MerchantStorageScheme::PostgresOnly => {
687-
let conn = connection::pg_connection_read(self).await?;
688-
<diesel_models::refund::Refund as storage_types::RefundDbExt>::get_refunds_count(&conn, merchant_id, refund_details)
689-
.await
690-
.map_err(Into::into)
691-
.into_report()
692-
}
693-
694-
enums::MerchantStorageScheme::RedisKv => Err(errors::StorageError::KVError.into()),
695-
}
679+
let conn = connection::pg_connection_read(self).await?;
680+
<diesel_models::refund::Refund as storage_types::RefundDbExt>::get_refunds_count(
681+
&conn,
682+
merchant_id,
683+
refund_details,
684+
)
685+
.await
686+
.map_err(Into::into)
687+
.into_report()
696688
}
697689
}
698690
}

crates/storage_impl/src/payments/payment_intent.rs

Lines changed: 21 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -224,34 +224,25 @@ impl<T: DatabaseStore> PaymentIntentInterface for KVRouterStore<T> {
224224
filters: &PaymentIntentFetchConstraints,
225225
storage_scheme: MerchantStorageScheme,
226226
) -> error_stack::Result<Vec<PaymentIntent>, StorageError> {
227-
match storage_scheme {
228-
MerchantStorageScheme::PostgresOnly => {
229-
self.router_store
230-
.filter_payment_intent_by_constraints(merchant_id, filters, storage_scheme)
231-
.await
232-
}
233-
MerchantStorageScheme::RedisKv => Err(StorageError::KVError.into()),
234-
}
227+
self.router_store
228+
.filter_payment_intent_by_constraints(merchant_id, filters, storage_scheme)
229+
.await
235230
}
231+
236232
#[cfg(feature = "olap")]
237233
async fn filter_payment_intents_by_time_range_constraints(
238234
&self,
239235
merchant_id: &str,
240236
time_range: &api_models::payments::TimeRange,
241237
storage_scheme: MerchantStorageScheme,
242238
) -> error_stack::Result<Vec<PaymentIntent>, StorageError> {
243-
match storage_scheme {
244-
MerchantStorageScheme::PostgresOnly => {
245-
self.router_store
246-
.filter_payment_intents_by_time_range_constraints(
247-
merchant_id,
248-
time_range,
249-
storage_scheme,
250-
)
251-
.await
252-
}
253-
MerchantStorageScheme::RedisKv => Err(StorageError::KVError.into()),
254-
}
239+
self.router_store
240+
.filter_payment_intents_by_time_range_constraints(
241+
merchant_id,
242+
time_range,
243+
storage_scheme,
244+
)
245+
.await
255246
}
256247

257248
#[cfg(feature = "olap")]
@@ -261,14 +252,9 @@ impl<T: DatabaseStore> PaymentIntentInterface for KVRouterStore<T> {
261252
filters: &PaymentIntentFetchConstraints,
262253
storage_scheme: MerchantStorageScheme,
263254
) -> error_stack::Result<Vec<(PaymentIntent, PaymentAttempt)>, StorageError> {
264-
match storage_scheme {
265-
MerchantStorageScheme::PostgresOnly => {
266-
self.router_store
267-
.get_filtered_payment_intents_attempt(merchant_id, filters, storage_scheme)
268-
.await
269-
}
270-
MerchantStorageScheme::RedisKv => Err(StorageError::KVError.into()),
271-
}
255+
self.router_store
256+
.get_filtered_payment_intents_attempt(merchant_id, filters, storage_scheme)
257+
.await
272258
}
273259

274260
#[cfg(feature = "olap")]
@@ -278,19 +264,13 @@ impl<T: DatabaseStore> PaymentIntentInterface for KVRouterStore<T> {
278264
constraints: &PaymentIntentFetchConstraints,
279265
storage_scheme: MerchantStorageScheme,
280266
) -> error_stack::Result<Vec<String>, StorageError> {
281-
match storage_scheme {
282-
MerchantStorageScheme::PostgresOnly => {
283-
self.router_store
284-
.get_filtered_active_attempt_ids_for_total_count(
285-
merchant_id,
286-
constraints,
287-
storage_scheme,
288-
)
289-
.await
290-
}
291-
292-
MerchantStorageScheme::RedisKv => Err(StorageError::KVError.into()),
293-
}
267+
self.router_store
268+
.get_filtered_active_attempt_ids_for_total_count(
269+
merchant_id,
270+
constraints,
271+
storage_scheme,
272+
)
273+
.await
294274
}
295275
}
296276

0 commit comments

Comments
 (0)