FEAT: split email into fist name and last name

This commit is contained in:
Anderson Feitosa
2023-01-12 11:40:14 -03:00
parent c7ca8297c9
commit 3c9ed08515
+50 -1
View File
@@ -15,8 +15,45 @@ export class MixpanelController {
delete body.info;
const mixpanel = init(this.mixpanelToken);
const separator = user.username.includes('-') ? '-' : '.';
const removeValues = [
'.dadosferatech.dadosfera',
'.demo.dadosfera',
'.dadosferademo',
'.dadosferatech.dadosfera2',
'.dadosferatech.dadosfera',
'.dadosfera.fin',
'.dadosfera.tech',
'.treinamentos@dadosfera.ai',
'.dadosfera',
'.dadosfera2',
'.treinamentosfera',
];
let username = user.username;
removeValues.forEach((value) => {
username = username.replace(value, '');
});
username = username.split('@')?.[0];
username = username.split('+')?.[0];
let firstName = username.substring(0, username.indexOf(separator));
let lastName = username.substring(username.lastIndexOf('.') + 1);
if (!firstName) {
firstName = lastName;
lastName = '';
}
firstName = this.capitalize(firstName);
lastName = this.capitalize(lastName);
await mixpanel.people.set(user.username, {
$name: user.username,
$first_name: firstName,
$last_name: lastName,
$name: this.getFullName(firstName, lastName),
$email: user.username,
customer_name: user.customer_name,
});
@@ -30,4 +67,16 @@ export class MixpanelController {
return { id, body, user: user.username };
}
capitalize(sentence: string): string {
if (!sentence) {
return '';
}
return sentence[0].toUpperCase() + sentence.substring(1);
}
getFullName(firstName: string, lastName: string) {
return `${firstName}${lastName ? ' ' + lastName : ''}`;
}
}