From 3c9ed08515d472d812dba1e63ed2dddf50f807ed Mon Sep 17 00:00:00 2001 From: Anderson Feitosa Date: Thu, 12 Jan 2023 11:40:14 -0300 Subject: [PATCH] FEAT: split email into fist name and last name --- src/modules/mixpanel/mixpanel.controller.ts | 51 ++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/src/modules/mixpanel/mixpanel.controller.ts b/src/modules/mixpanel/mixpanel.controller.ts index bf88224..d5e8f3d 100644 --- a/src/modules/mixpanel/mixpanel.controller.ts +++ b/src/modules/mixpanel/mixpanel.controller.ts @@ -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 : ''}`; + } }