Bug: [FEATURE] : [BOA] mask pii information in connector request and response



### Feature Description

Mask pii information passed and received in the connector request and response

### Possible Implementation

Refactor all sensitive response and request fields secret

### Have you spent some time checking if this feature request has been raised before?

- [X] I checked and didn't find a similar issue

### Have you read the Contributing Guidelines?

- [X] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### Are you willing to submit a PR?

Yes, I am willing to submit a PR!
diff --git a/crates/router/src/connector/bankofamerica.rs b/crates/router/src/connector/bankofamerica.rs
index 706532c5d18..fefc80f806c 100644
--- a/crates/router/src/connector/bankofamerica.rs
+++ b/crates/router/src/connector/bankofamerica.rs
@@ -1079,8 +1079,10 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
             .response
             .parse_struct("bankofamerica RefundResponse")
             .change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
+
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
+
         types::RouterData::try_from(types::ResponseRouterData {
             response,
             data: data.clone(),
diff --git a/crates/router/src/connector/bankofamerica/transformers.rs b/crates/router/src/connector/bankofamerica/transformers.rs
index b2a9f14ccce..235321f1ac6 100644
--- a/crates/router/src/connector/bankofamerica/transformers.rs
+++ b/crates/router/src/connector/bankofamerica/transformers.rs
@@ -2,7 +2,7 @@ use api_models::payments;
 use base64::Engine;
 use common_utils::{ext_traits::ValueExt, pii};
 use error_stack::{IntoReport, ResultExt};
-use masking::{PeekInterface, Secret};
+use masking::{ExposeInterface, PeekInterface, Secret};
 use serde::{Deserialize, Serialize};
 use serde_json::Value;
 
@@ -113,9 +113,9 @@ pub struct MerchantDefinedInformation {
 pub struct BankOfAmericaConsumerAuthInformation {
     ucaf_collection_indicator: Option<String>,
     cavv: Option<String>,
-    ucaf_authentication_data: Option<String>,
+    ucaf_authentication_data: Option<Secret<String>>,
     xid: Option<String>,
-    directory_server_transaction_id: Option<String>,
+    directory_server_transaction_id: Option<Secret<String>>,
     specification_version: Option<String>,
 }
 
@@ -213,7 +213,7 @@ pub struct BillTo {
     first_name: Secret<String>,
     last_name: Secret<String>,
     address1: Secret<String>,
-    locality: String,
+    locality: Secret<String>,
     administrative_area: Secret<String>,
     postal_code: Secret<String>,
     country: api_enums::CountryAlpha2,
@@ -235,7 +235,7 @@ fn build_bill_to(
         first_name: address.get_first_name()?.to_owned(),
         last_name: address.get_last_name()?.to_owned(),
         address1: address.get_line1()?.to_owned(),
-        locality: address.get_city()?.to_owned(),
+        locality: Secret::new(address.get_city()?.to_owned()),
         administrative_area: Secret::from(state),
         postal_code: address.get_zip()?.to_owned(),
         country: address.get_country()?.to_owned(),
@@ -435,7 +435,7 @@ pub struct ClientRiskInformation {
 
 #[derive(Debug, Clone, Deserialize, Serialize)]
 pub struct ClientRiskInformationRules {
-    name: String,
+    name: Secret<String>,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
@@ -889,8 +889,8 @@ impl ForeignFrom<(BankofamericaPaymentStatus, bool)> for enums::AttemptStatus {
 #[derive(Debug, Deserialize, Serialize)]
 #[serde(rename_all = "camelCase")]
 pub struct BankOfAmericaConsumerAuthInformationResponse {
-    access_token: String,
-    device_data_collection_url: String,
+    access_token: Secret<String>,
+    device_data_collection_url: Secret<String>,
     reference_id: String,
 }
 
@@ -1066,10 +1066,12 @@ impl<F>
                     redirection_data: Some(services::RedirectForm::CybersourceAuthSetup {
                         access_token: info_response
                             .consumer_authentication_information
-                            .access_token,
+                            .access_token
+                            .expose(),
                         ddc_url: info_response
                             .consumer_authentication_information
-                            .device_data_collection_url,
+                            .device_data_collection_url
+                            .expose(),
                         reference_id: info_response
                             .consumer_authentication_information
                             .reference_id,
@@ -1322,10 +1324,10 @@ pub enum BankOfAmericaAuthEnrollmentStatus {
 pub struct BankOfAmericaConsumerAuthValidateResponse {
     ucaf_collection_indicator: Option<String>,
     cavv: Option<String>,
-    ucaf_authentication_data: Option<String>,
+    ucaf_authentication_data: Option<Secret<String>>,
     xid: Option<String>,
     specification_version: Option<String>,
-    directory_server_transaction_id: Option<String>,
+    directory_server_transaction_id: Option<Secret<String>>,
     indicator: Option<String>,
 }
 
@@ -1337,7 +1339,7 @@ pub struct BankOfAmericaThreeDSMetadata {
 #[derive(Debug, Deserialize, Serialize)]
 #[serde(rename_all = "camelCase")]
 pub struct BankOfAmericaConsumerAuthInformationEnrollmentResponse {
-    access_token: Option<String>,
+    access_token: Option<Secret<String>>,
     step_up_url: Option<String>,
     //Added to segregate the three_ds_data in a separate struct
     #[serde(flatten)]
@@ -1420,7 +1422,8 @@ impl<F>
                     let redirection_data = match (
                         info_response
                             .consumer_authentication_information
-                            .access_token,
+                            .access_token
+                            .map(|access_token| access_token.expose()),
                         info_response
                             .consumer_authentication_information
                             .step_up_url,
@@ -2023,7 +2026,7 @@ impl
                 client_risk_information.rules.map(|rules| {
                     rules
                         .iter()
-                        .map(|risk_info| format!(" , {}", risk_info.name))
+                        .map(|risk_info| format!(" , {}", risk_info.name.clone().expose()))
                         .collect::<Vec<String>>()
                         .join("")
                 })

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [x] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
Mask pii information passed and received in the connector request and response for BOA


## Test Case
Check if sensitive fields within connector request and response is masked in the click house for BOA

Sanity test
1. Payment create - card 3ds
```
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: {{api_key}}' \
--data-raw '{
  "amount": 2000,
  "currency": "GBP",
  "confirm": true,
  "capture_method": "automatic",
  "capture_on": "2022-09-10T10:11:12Z",
  "customer_id": "StripeCustomer",
  "email": "abcdef123@gmail.com",
  "name": "John Doe",
  "phone": "999999999",
  "phone_country_code": "+65",
  "description": "Its my first payment request",
  "authentication_type": "three_ds",
  "return_url": "https://google.com",

  "billing": {
    "address": {
      "line1": "1467",
      "line2": "Harrison Street",
      "line3": "Harrison Street",
      "city": "San Fransico",
      "state": "California",
      "zip": "94122",
      "country": "US",
      "first_name": "John",
      "last_name": "Doe"
    }
  },
  "browser_info": {
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
    "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "language": "nl-NL",
    "color_depth": 24,
    "screen_height": 723,
    "screen_width": 1536,
    "time_zone": 0,
    "java_enabled": true,
    "java_script_enabled": true,
    "ip_address": "127.0.0.1"
  },
  "shipping": {
    "address": {
      "line1": "1467",
      "line2": "Harrison Street",
      "line3": "Harrison Street",
      "city": "San Fransico",
      "state": "California",
      "zip": "94122",
      "country": "US",
      "first_name": "John",
      "last_name": "Doe"
    }
  },
  "statement_descriptor_name": "joseph",
  "statement_descriptor_suffix": "JS",
  "metadata": {
    "udf1": "value1",
    "new_customer": "true",
    "login_date": "2019-09-10T10:11:12Z"
  },
  "payment_method": "card",
  "payment_method_data": {
    "card": {
      "card_number": "5123456789012346",
      "card_exp_month": "10",
      "card_exp_year": "30",
      "card_holder_name": "Joseph Doe",
      "card_cvc": "123"
    }
  }
}'
```
response 
```
NFO router::events::event_logger: event: "{\"connector_name\":\"bankofamerica\",\"flow\":\"PreProcessing\",\"request\":\"{\\\"paymentInformation\\\":{\\\"card\\\":{\\\"number\\\":\\\"512345**********\\\",\\\"expirationMonth\\\":\\\"*** alloc::string::String ***\\\",\\\"expirationYear\\\":\\\"*** alloc::string::String ***\\\",\\\"securityCode\\\":\\\"*** alloc::string::String ***\\\",\\\"type\\\":\\\"002\\\"}},\\\"clientReferenceInformation\\\":{\\\"code\\\":\\\"pay_yHo8Y3B8atd40rrClRkx_1\\\"},\\\"consumerAuthenticationInformation\\\":{\\\"returnUrl\\\":\\\"http://localhost:8080/payments/pay_yHo8Y3B8atd40rrClRkx/merchant_1708425554/redirect/complete/bankofamerica\\\",\\\"referenceId\\\":\\\"1901aba7-33de-49bb-afa0-001a14f95448\\\"},\\\"orderInformation\\\":{\\\"amountDetails\\\":{\\\"totalAmount\\\":\\\"20.00\\\",\\\"currency\\\":\\\"GBP\\\"},\\\"billTo\\\":{\\\"firstName\\\":\\\"*** alloc::string::String ***\\\",\\\"lastName\\\":\\\"*** alloc::string::String ***\\\",\\\"address1\\\":\\\"*** alloc::string::String ***\\\",\\\"locality\\\":\\\"*** alloc::string::String ***\\\",\\\"administrativeArea\\\":\\\"*** alloc::string::String ***\\\",\\\"postalCode\\\":\\\"*** alloc::string::String ***\\\",\\\"country\\\":\\\"US\\\",\\\"email\\\":\\\"*********@gmail.com\\\"}}}\",\"masked_response\":\"{\\\"id\\\":\\\"7084255709226701604951\\\",\\\"clientReferenceInformation\\\":{\\\"code\\\":\\\"pay_yHo8Y3B8atd40rrClRkx_1\\\"},\\\"consumerAuthenticationInformation\\\":{\\\"accessToken\\\":null,\\\"stepUpUrl\\\":null,\\\"ucafCollectionIndicator\\\":\\\"2\\\",\\\"cavv\\\":null,\\\"ucafAuthenticationData\\\":\\\"*** alloc::string::String ***\\\",\\\"xid\\\":null,\\\"specificationVersion\\\":\\\"2.1.0\\\",\\\"directoryServerTransactionId\\\":\\\"*** alloc::string::String ***\\\",\\\"indicator\\\":null},\\\"status\\\":\\\"AUTHENTICATION_SUCCESSFUL\\\",\\\"errorInformation\\\":null}\",\"error\":null,\"url\":\"https://apitest.merchant-services.bankofamerica.com/risk/v1/authentications\",\"method\":\"POST\",\"payment_id\":\"pay_yHo8Y3B8atd40rrClRkx\",\"merchant_id\":\"merchant_1708425554\",\"created_at\":1708425571363,\"request_id\":\"018dc619-6993-719c-b539-c698c767a08f\",\"latency\":579,\"refund_id\":null,\"dispute_id\":null,\"status_code\":201}", event_type: ConnectorApiLogs, event_id: "018dc619-6993-719c-b539-c698c767a08f", log_type: "event"
```
In logs check for
`topic = "hyperswitch-outgoing-connector-events" `

## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable
