@malga-checkout/core
Version:
Core components for Malga Checkout
55 lines (54 loc) • 2 kB
JavaScript
import { cleanTextOnlyNumbers, cleanTextSpecialCharacters, } from '@malga-checkout/utils';
export const formatCustomerAddress = (customerAddress) => {
if (!customerAddress) {
return {};
}
const isBrazil = customerAddress.country.toLowerCase() === 'br';
const zipCode = isBrazil
? cleanTextOnlyNumbers(customerAddress.zipCode)
: cleanTextSpecialCharacters(customerAddress.zipCode);
return {
address: {
country: customerAddress.country,
state: customerAddress.state,
city: customerAddress.city,
district: customerAddress.district,
zipCode,
street: customerAddress.street,
streetNumber: customerAddress.streetNumber,
complement: customerAddress.complement,
},
};
};
export const formatCustomerDocument = (customerDocument, isFraudAnalysis = false) => {
if (!customerDocument || customerDocument.type === 'noDocument') {
if (isFraudAnalysis) {
return null;
}
return {
document: {
type: 'noDocument',
},
};
}
const isBrazilianDocument = ['cpf', 'cnpj'].includes(customerDocument.type.toLowerCase());
const documentNumber = isBrazilianDocument
? cleanTextOnlyNumbers(customerDocument.number)
: cleanTextSpecialCharacters(customerDocument.number);
return {
document: {
type: isFraudAnalysis
? customerDocument.type.toUpperCase()
: customerDocument.type.toLowerCase(),
number: documentNumber,
country: customerDocument.country,
},
};
};
export const formatPayload = (customer, isFraudAnalysis = false) => {
const address = formatCustomerAddress(customer.address);
const document = formatCustomerDocument(customer.document, isFraudAnalysis);
return Object.assign(Object.assign(Object.assign({}, address), document), { phoneNumber: (customer === null || customer === void 0 ? void 0 : customer.phoneNumber)
? cleanTextOnlyNumbers(customer.phoneNumber)
: ' ', name: customer.name, email: customer.email });
};