@@ -51,6 +51,16 @@ impl ForeignTryFrom<&RouterData<PSync, PaymentsSyncData, PaymentsResponseData>>
51
51
} )
52
52
. ok ( ) ;
53
53
54
+ let encoded_data = router_data
55
+ . request
56
+ . encoded_data
57
+ . as_ref ( )
58
+ . map ( |data| Identifier {
59
+ id_type : Some ( payments_grpc:: identifier:: IdType :: EncodedData (
60
+ data. to_string ( ) ,
61
+ ) ) ,
62
+ } ) ;
63
+
54
64
let connector_ref_id = router_data
55
65
. request
56
66
. connector_reference_id
@@ -60,7 +70,7 @@ impl ForeignTryFrom<&RouterData<PSync, PaymentsSyncData, PaymentsResponseData>>
60
70
} ) ;
61
71
62
72
Ok ( Self {
63
- transaction_id : connector_transaction_id,
73
+ transaction_id : connector_transaction_id. or ( encoded_data ) ,
64
74
request_ref_id : connector_ref_id,
65
75
} )
66
76
}
@@ -319,6 +329,19 @@ impl ForeignTryFrom<&RouterData<Authorize, PaymentsAuthorizeData, PaymentsRespon
319
329
}
320
330
} ;
321
331
332
+ let capture_method = router_data
333
+ . request
334
+ . capture_method
335
+ . map ( payments_grpc:: CaptureMethod :: foreign_try_from)
336
+ . transpose ( ) ?;
337
+
338
+ let browser_info = router_data
339
+ . request
340
+ . browser_info
341
+ . clone ( )
342
+ . map ( payments_grpc:: BrowserInformation :: foreign_try_from)
343
+ . transpose ( ) ?;
344
+
322
345
Ok ( Self {
323
346
request_ref_id : Some ( Identifier {
324
347
id_type : Some ( payments_grpc:: identifier:: IdType :: Id (
@@ -342,6 +365,13 @@ impl ForeignTryFrom<&RouterData<Authorize, PaymentsAuthorizeData, PaymentsRespon
342
365
} )
343
366
. unwrap_or_default ( ) ,
344
367
webhook_url : router_data. request . webhook_url . clone ( ) ,
368
+ capture_method : capture_method. map ( |capture_method| capture_method. into ( ) ) ,
369
+ email : router_data
370
+ . request
371
+ . email
372
+ . clone ( )
373
+ . map ( |e| e. expose ( ) . expose ( ) ) ,
374
+ browser_info,
345
375
} )
346
376
}
347
377
}
@@ -370,13 +400,11 @@ impl ForeignTryFrom<payments_grpc::PaymentServiceAuthorizeResponse>
370
400
} )
371
401
} ) ;
372
402
373
- let transaction_id = response. transaction_id . as_ref ( ) . and_then ( |id| {
374
- id. id_type . clone ( ) . and_then ( |id_type| match id_type {
375
- payments_grpc:: identifier:: IdType :: Id ( id) => Some ( id) ,
376
- payments_grpc:: identifier:: IdType :: EncodedData ( encoded_data) => Some ( encoded_data) ,
377
- payments_grpc:: identifier:: IdType :: NoResponseIdMarker ( _) => None ,
378
- } )
379
- } ) ;
403
+ let resource_id: hyperswitch_domain_models:: router_request_types:: ResponseId = match response. transaction_id . as_ref ( ) . and_then ( |id| id. id_type . clone ( ) ) {
404
+ Some ( payments_grpc:: identifier:: IdType :: Id ( id) ) => hyperswitch_domain_models:: router_request_types:: ResponseId :: ConnectorTransactionId ( id) ,
405
+ Some ( payments_grpc:: identifier:: IdType :: EncodedData ( encoded_data) ) => hyperswitch_domain_models:: router_request_types:: ResponseId :: EncodedData ( encoded_data) ,
406
+ Some ( payments_grpc:: identifier:: IdType :: NoResponseIdMarker ( _) ) | None => hyperswitch_domain_models:: router_request_types:: ResponseId :: NoResponseId ,
407
+ } ;
380
408
381
409
let ( connector_metadata, redirection_data) = match response. redirection_data . clone ( ) {
382
410
Some ( redirection_data) => match redirection_data. form_type {
@@ -423,13 +451,8 @@ impl ForeignTryFrom<payments_grpc::PaymentServiceAuthorizeResponse>
423
451
} )
424
452
} else {
425
453
Ok ( PaymentsResponseData :: TransactionResponse {
426
- resource_id : match transaction_id. as_ref ( ) {
427
- Some ( transaction_id) => hyperswitch_domain_models:: router_request_types:: ResponseId :: ConnectorTransactionId ( transaction_id. clone ( ) ) ,
428
- None => hyperswitch_domain_models:: router_request_types:: ResponseId :: NoResponseId ,
429
- } ,
430
- redirection_data : Box :: new (
431
- redirection_data
432
- ) ,
454
+ resource_id,
455
+ redirection_data : Box :: new ( redirection_data) ,
433
456
mandate_reference : Box :: new ( None ) ,
434
457
connector_metadata,
435
458
network_txn_id : response. network_txn_id . clone ( ) ,
@@ -469,6 +492,12 @@ impl ForeignTryFrom<payments_grpc::PaymentServiceGetResponse>
469
492
470
493
let status_code = convert_connector_service_status_code ( response. status_code ) ?;
471
494
495
+ let resource_id: hyperswitch_domain_models:: router_request_types:: ResponseId = match response. transaction_id . as_ref ( ) . and_then ( |id| id. id_type . clone ( ) ) {
496
+ Some ( payments_grpc:: identifier:: IdType :: Id ( id) ) => hyperswitch_domain_models:: router_request_types:: ResponseId :: ConnectorTransactionId ( id) ,
497
+ Some ( payments_grpc:: identifier:: IdType :: EncodedData ( encoded_data) ) => hyperswitch_domain_models:: router_request_types:: ResponseId :: EncodedData ( encoded_data) ,
498
+ Some ( payments_grpc:: identifier:: IdType :: NoResponseIdMarker ( _) ) | None => hyperswitch_domain_models:: router_request_types:: ResponseId :: NoResponseId ,
499
+ } ;
500
+
472
501
let response = if response. error_code . is_some ( ) {
473
502
Err ( ErrorResponse {
474
503
code : response. error_code ( ) . to_owned ( ) ,
@@ -483,21 +512,22 @@ impl ForeignTryFrom<payments_grpc::PaymentServiceGetResponse>
483
512
} )
484
513
} else {
485
514
Ok ( PaymentsResponseData :: TransactionResponse {
486
- resource_id : match connector_response_reference_id. as_ref ( ) {
487
- Some ( connector_response_reference_id) => hyperswitch_domain_models:: router_request_types:: ResponseId :: ConnectorTransactionId ( connector_response_reference_id. clone ( ) ) ,
488
- None => hyperswitch_domain_models:: router_request_types:: ResponseId :: NoResponseId ,
489
- } ,
490
- redirection_data : Box :: new (
491
- None
492
- ) ,
493
- mandate_reference : Box :: new ( None ) ,
515
+ resource_id,
516
+ redirection_data : Box :: new ( None ) ,
517
+ mandate_reference : Box :: new ( response. mandate_reference . map ( |grpc_mandate| {
518
+ hyperswitch_domain_models:: router_response_types:: MandateReference {
519
+ connector_mandate_id : grpc_mandate. mandate_id ,
520
+ payment_method_id : None ,
521
+ mandate_metadata : None ,
522
+ connector_mandate_request_reference_id : None ,
523
+ }
524
+ } ) ) ,
494
525
connector_metadata : None ,
495
526
network_txn_id : response. network_txn_id . clone ( ) ,
496
527
connector_response_reference_id,
497
528
incremental_authorization_allowed : None ,
498
529
charges : None ,
499
- }
500
- )
530
+ } )
501
531
} ;
502
532
503
533
Ok ( response)
0 commit comments