fix(connector): [Pix] convert data type of pix fields (#5476)

This commit is contained in:
Sakil Mostak
2024-07-30 18:52:38 +05:30
committed by GitHub
parent 827fa07418
commit be9347b8d5
5 changed files with 19 additions and 21 deletions

View File

@ -6632,15 +6632,13 @@
"nullable": true
},
"cpf": {
"type": "integer",
"format": "int64",
"type": "string",
"description": "CPF is a Brazilian tax identification number",
"example": "10599054689",
"nullable": true
},
"cnpj": {
"type": "integer",
"format": "int64",
"type": "string",
"description": "CNPJ is a Brazilian company tax identification number",
"example": "74469027417312",
"nullable": true

View File

@ -2473,11 +2473,11 @@ pub enum BankTransferData {
#[schema(value_type = Option<String>, example = "a1f4102e-a446-4a57-bcce-6fa48899c1d1")]
pix_key: Option<Secret<String>>,
/// CPF is a Brazilian tax identification number
#[schema(value_type = Option<i64>, example = "10599054689")]
cpf: Option<Secret<i64>>,
#[schema(value_type = Option<String>, example = "10599054689")]
cpf: Option<Secret<String>>,
/// CNPJ is a Brazilian company tax identification number
#[schema(value_type = Option<i64>, example = "74469027417312")]
cnpj: Option<Secret<i64>>,
#[schema(value_type = Option<String>, example = "74469027417312")]
cnpj: Option<Secret<String>>,
},
Pse {},
LocalBankTransfer {

View File

@ -450,9 +450,9 @@ pub enum BankTransferData {
/// Unique key for pix transfer
pix_key: Option<Secret<String>>,
/// CPF is a Brazilian tax identification number
cpf: Option<Secret<i64>>,
cpf: Option<Secret<String>>,
/// CNPJ is a Brazilian company tax identification number
cnpj: Option<Secret<i64>>,
cnpj: Option<Secret<String>>,
},
Pse {},
LocalBankTransfer {

View File

@ -42,9 +42,9 @@ pub struct PixPaymentValue {
#[derive(Default, Debug, Serialize)]
pub struct ItaubankDebtor {
#[serde(skip_serializing_if = "Option::is_none")]
cpf: Option<Secret<i64>>, // CPF is a Brazilian tax identification number
cpf: Option<Secret<String>>, // CPF is a Brazilian tax identification number
#[serde(skip_serializing_if = "Option::is_none")]
cnpj: Option<Secret<i64>>, // CNPJ is a Brazilian company tax identification number
cnpj: Option<Secret<String>>, // CNPJ is a Brazilian company tax identification number
#[serde(skip_serializing_if = "Option::is_none")]
nome: Option<Secret<String>>, // name of the debtor
}
@ -60,17 +60,17 @@ impl TryFrom<&ItaubankRouterData<&types::PaymentsAuthorizeRouterData>> for Itaub
domain::BankTransferData::Pix { pix_key, cpf, cnpj } => {
let nome = item.router_data.get_optional_billing_full_name();
// cpf and cnpj are mutually exclusive
let devedor = match (cpf, cnpj) {
(Some(cpf), _) => ItaubankDebtor {
cpf: Some(cpf),
cnpj: None,
nome,
},
(None, Some(cnpj)) => ItaubankDebtor {
let devedor = match (cnpj, cpf) {
(Some(cnpj), _) => ItaubankDebtor {
cpf: None,
cnpj: Some(cnpj),
nome,
},
(None, Some(cpf)) => ItaubankDebtor {
cpf: Some(cpf),
cnpj: None,
nome,
},
_ => Err(errors::ConnectorError::MissingRequiredField {
field_name: "cpf and cnpj both missing in payment_method_data",
})?,

View File

@ -33,8 +33,8 @@ export const connectorDetails = {
bank_transfer: {
pix: {
pix_key: "a1f4102e-a446-4a57-bcce-6fa48899c1d1",
cnpj: 74469027417312,
cpf: 10599054689,
cnpj: "74469027417312",
cpf: "10599054689",
},
},
},