@@ -1095,31 +1095,36 @@ impl services::ConnectorRedirectResponse for Bluesnap {
1095
1095
& self ,
1096
1096
_query_params : & str ,
1097
1097
json_payload : Option < serde_json:: Value > ,
1098
- _action : services:: PaymentAction ,
1098
+ action : services:: PaymentAction ,
1099
1099
) -> CustomResult < payments:: CallConnectorAction , errors:: ConnectorError > {
1100
- let redirection_response: bluesnap:: BluesnapRedirectionResponse = json_payload
1101
- . ok_or ( errors:: ConnectorError :: MissingConnectorRedirectionPayload {
1102
- field_name : "json_payload" ,
1103
- } ) ?
1104
- . parse_value ( "BluesnapRedirectionResponse" )
1105
- . change_context ( errors:: ConnectorError :: ResponseDeserializationFailed ) ?;
1100
+ match action {
1101
+ services:: PaymentAction :: PSync => Ok ( payments:: CallConnectorAction :: Trigger ) ,
1102
+ services:: PaymentAction :: CompleteAuthorize => {
1103
+ let redirection_response: bluesnap:: BluesnapRedirectionResponse = json_payload
1104
+ . ok_or ( errors:: ConnectorError :: MissingConnectorRedirectionPayload {
1105
+ field_name : "json_payload" ,
1106
+ } ) ?
1107
+ . parse_value ( "BluesnapRedirectionResponse" )
1108
+ . change_context ( errors:: ConnectorError :: ResponseDeserializationFailed ) ?;
1106
1109
1107
- let redirection_result: bluesnap:: BluesnapThreeDsResult = redirection_response
1108
- . authentication_response
1109
- . parse_struct ( "BluesnapThreeDsResult" )
1110
- . change_context ( errors:: ConnectorError :: ResponseDeserializationFailed ) ?;
1110
+ let redirection_result: bluesnap:: BluesnapThreeDsResult = redirection_response
1111
+ . authentication_response
1112
+ . parse_struct ( "BluesnapThreeDsResult" )
1113
+ . change_context ( errors:: ConnectorError :: ResponseDeserializationFailed ) ?;
1111
1114
1112
- match redirection_result. status . as_str ( ) {
1113
- "Success" => Ok ( payments:: CallConnectorAction :: Trigger ) ,
1114
- _ => Ok ( payments:: CallConnectorAction :: StatusUpdate {
1115
- status : enums:: AttemptStatus :: AuthenticationFailed ,
1116
- error_code : redirection_result. code ,
1117
- error_message : redirection_result
1118
- . info
1119
- . as_ref ( )
1120
- . and_then ( |info| info. errors . as_ref ( ) . and_then ( |error| error. first ( ) ) )
1121
- . cloned ( ) ,
1122
- } ) ,
1115
+ match redirection_result. status . as_str ( ) {
1116
+ "Success" => Ok ( payments:: CallConnectorAction :: Trigger ) ,
1117
+ _ => Ok ( payments:: CallConnectorAction :: StatusUpdate {
1118
+ status : enums:: AttemptStatus :: AuthenticationFailed ,
1119
+ error_code : redirection_result. code ,
1120
+ error_message : redirection_result
1121
+ . info
1122
+ . as_ref ( )
1123
+ . and_then ( |info| info. errors . as_ref ( ) . and_then ( |error| error. first ( ) ) )
1124
+ . cloned ( ) ,
1125
+ } ) ,
1126
+ }
1127
+ }
1123
1128
}
1124
1129
}
1125
1130
}
0 commit comments