@@ -2148,36 +2148,49 @@ async fn payment_response_update_tracker<F: Clone, T: types::Capturable>(
2148
2148
) ;
2149
2149
tokio:: spawn (
2150
2150
async move {
2151
- routing_helpers:: push_metrics_with_update_window_for_success_based_routing (
2152
- & state,
2153
- & payment_attempt,
2154
- routable_connectors. clone ( ) ,
2155
- & profile_id,
2156
- dynamic_routing_algo_ref. clone ( ) ,
2157
- dynamic_routing_config_params_interpolator. clone ( ) ,
2158
- )
2159
- . await
2160
- . map_err ( |e| logger:: error!( success_based_routing_metrics_error=?e) )
2161
- . ok ( ) ;
2162
-
2163
- if let Some ( gsm_error_category) = gsm_error_category {
2164
- if gsm_error_category. should_perform_elimination_routing ( ) {
2165
- logger:: info!( "Performing update window for elimination routing" ) ;
2166
- routing_helpers:: update_window_for_elimination_routing (
2167
- & state,
2168
- & payment_attempt,
2169
- & profile_id,
2170
- dynamic_routing_algo_ref. clone ( ) ,
2171
- dynamic_routing_config_params_interpolator. clone ( ) ,
2172
- gsm_error_category,
2173
- )
2174
- . await
2175
- . map_err ( |e| logger:: error!( dynamic_routing_metrics_error=?e) )
2176
- . ok ( ) ;
2151
+ let should_route_to_open_router = state. conf . open_router . enabled ;
2152
+
2153
+ if should_route_to_open_router {
2154
+ routing_helpers:: update_gateway_score_helper_with_open_router (
2155
+ & state,
2156
+ & payment_attempt,
2157
+ & profile_id,
2158
+ dynamic_routing_algo_ref. clone ( ) ,
2159
+ )
2160
+ . await
2161
+ . map_err ( |e| logger:: error!( open_router_update_gateway_score_err=?e) )
2162
+ . ok ( ) ;
2163
+ } else {
2164
+ routing_helpers:: push_metrics_with_update_window_for_success_based_routing (
2165
+ & state,
2166
+ & payment_attempt,
2167
+ routable_connectors. clone ( ) ,
2168
+ & profile_id,
2169
+ dynamic_routing_algo_ref. clone ( ) ,
2170
+ dynamic_routing_config_params_interpolator. clone ( ) ,
2171
+ )
2172
+ . await
2173
+ . map_err ( |e| logger:: error!( success_based_routing_metrics_error=?e) )
2174
+ . ok ( ) ;
2175
+
2176
+ if let Some ( gsm_error_category) = gsm_error_category {
2177
+ if gsm_error_category. should_perform_elimination_routing ( ) {
2178
+ logger:: info!( "Performing update window for elimination routing" ) ;
2179
+ routing_helpers:: update_window_for_elimination_routing (
2180
+ & state,
2181
+ & payment_attempt,
2182
+ & profile_id,
2183
+ dynamic_routing_algo_ref. clone ( ) ,
2184
+ dynamic_routing_config_params_interpolator. clone ( ) ,
2185
+ gsm_error_category,
2186
+ )
2187
+ . await
2188
+ . map_err ( |e| logger:: error!( dynamic_routing_metrics_error=?e) )
2189
+ . ok ( ) ;
2190
+ } ;
2177
2191
} ;
2178
- } ;
2179
2192
2180
- routing_helpers:: push_metrics_with_update_window_for_contract_based_routing (
2193
+ routing_helpers:: push_metrics_with_update_window_for_contract_based_routing (
2181
2194
& state,
2182
2195
& payment_attempt,
2183
2196
routable_connectors,
@@ -2188,6 +2201,7 @@ async fn payment_response_update_tracker<F: Clone, T: types::Capturable>(
2188
2201
. await
2189
2202
. map_err ( |e| logger:: error!( contract_based_routing_metrics_error=?e) )
2190
2203
. ok ( ) ;
2204
+ }
2191
2205
}
2192
2206
. in_current_span ( ) ,
2193
2207
) ;
0 commit comments