Skip to content

Instantly share code, notes, and snippets.

@horacioibrahim
Last active December 11, 2024 17:32
Show Gist options
  • Save horacioibrahim/07c8b7d790b0983f72888f080f033e6d to your computer and use it in GitHub Desktop.
Save horacioibrahim/07c8b7d790b0983f72888f080f033e6d to your computer and use it in GitHub Desktop.
Normalizar documento de usuário em índices e nomes diferentes
if (doc.containsKey('event_name.keyword') && doc['event_name.keyword'].size() > 0) {
String eventName = doc['event_name.keyword'].value;
String apenasNumeros = "";
if (doc.containsKey('user_id.keyword') && doc['user_id.keyword'].size() > 0) {
String userId = doc['user_id.keyword'].value;
if (userId != null && !userId.isEmpty()) {
for (int i = 0; i < userId.length(); i++) {
char c = userId.charAt(i);
if (Character.isDigit(c)) {
apenasNumeros += c;
}
}
}
}
// Verificar se o event_name é redirect_request
if (eventName == "redirect_request") {
if (doc.containsKey('event_data.redirect_to.keyword') && doc['event_data.redirect_to.keyword'].size() > 0) {
for (String redirectTo : doc['event_data.redirect_to.keyword']) {
def matcher = /document=([^&]+)/.matcher(redirectTo);
if (matcher.find()) {
emit(matcher.group(1)); // Emite o valor do document
return;
}
}
}
emit("nulo"); // Se não encontrar um document válido
return;
}
// Verificar se o event_name é click
else if (eventName == "click" || eventName == "view_content") {
if (doc.containsKey('user_id.keyword') && doc['user_id.keyword'].size() > 0) {
if (apenasNumeros != null && !apenasNumeros.isEmpty()) {
emit(apenasNumeros); // Emite o user_id válido
return;
}
}
emit("nulo"); // Caso user_id não exista ou seja inválido
return;
}
else if (eventName == "contact") {
if (doc.containsKey('event.document.keyword') && doc['event.document.keyword'].size() > 0) {
String document = doc['event.document.keyword'].value;
emit(document);
return;
}
}
// Outros casos podem ser tratados aqui
else {
emit("nulo"); // Caso o event_name não seja relevante
return;
}
} else {
emit("nulo"); // Caso o campo event_name.keyword não exista ou esteja vazio
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment