Skip to content

Commit

Permalink
chore: Contributors needed
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriel-logan committed Mar 27, 2024
1 parent 267b691 commit 7b86de4
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 49 deletions.
51 changes: 2 additions & 49 deletions packages/java/src/main/java/io/github/gabriel_logan/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,67 +5,20 @@
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
private String getErrorMessage(int code) {
// Implemente esta função para retornar a mensagem de erro apropriada
return "";
}

/**
* Checks if a string is empty or contains only whitespace.
*
* @param value the string to check
* @return true if the string is empty or contains only whitespace, false otherwise
* @throws IllegalArgumentException if the input value is not a string
*/
public static boolean isEmpty(String value) throws IllegalArgumentException {
public boolean isEmpty(String value) throws IllegalArgumentException {
if (value == null) {
throw new IllegalArgumentException("Input value must be a string.");
}

return value.trim().length() == 0;
}

public ValidationResult cpfIsValid(String cpf) {
try {
int numeroBase = 10;
int numeroBase2 = 11;
int somaTotal = 0;
int somaTotal2 = 0;

if (cpf.length() != 11) {
return new ValidationResult(false, getErrorMessage(2));
}

int primeiroVerificador = 0;
int segundoVerificador = 0;

for (int repetidor = 0; repetidor < 11; repetidor++) {
int multiplicador = Character.getNumericValue(cpf.charAt(repetidor)) * numeroBase;
numeroBase--;
somaTotal += multiplicador;

int multiplicador2 = Character.getNumericValue(cpf.charAt(repetidor)) * numeroBase2;
numeroBase2--;
somaTotal2 += multiplicador2;

int valorDeVerificacao = somaTotal - Character.getNumericValue(cpf.charAt(9));
int valorDeVerificacao2 = somaTotal2 - Character.getNumericValue(cpf.charAt(10));

primeiroVerificador = 11 - (valorDeVerificacao % 11);
segundoVerificador = 11 - (valorDeVerificacao2 % 11);
}

if (primeiroVerificador > 9) primeiroVerificador = 0;
if (segundoVerificador > 9) segundoVerificador = 0;

if (primeiroVerificador == Character.getNumericValue(cpf.charAt(9))
&& segundoVerificador == Character.getNumericValue(cpf.charAt(10))) {
return new ValidationResult(true, null);
}

return new ValidationResult(false, getErrorMessage(2));
} catch (Exception e) {
return new ValidationResult(false, getErrorMessage(3));
}
}
private CpfValidator cpfValidator = new CpfValidator();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
public class CnpjValidator {
public static boolean isValid(String cnpj) {
// Remova caracteres especiais do CNPJ
cnpj = cnpj.replaceAll("[^0-9]", "");

// Verifique se o CNPJ possui 14 dígitos
if (cnpj.length() != 14) {
return false;
}

// Verifique se todos os dígitos são iguais
if (cnpj.matches("(\\d)\\1{13}")) {
return false;
}

// Verifique o primeiro dígito verificador
int sum = 0;
int weight = 2;
for (int i = 11; i >= 0; i--) {
int digit = Character.getNumericValue(cnpj.charAt(i));
sum += digit * weight;
weight = (weight + 1) % 9 + 2;
}
int digit1 = (sum % 11 < 2) ? 0 : 11 - (sum % 11);
if (Character.getNumericValue(cnpj.charAt(12)) != digit1) {
return false;
}

// Verifique o segundo dígito verificador
sum = 0;
weight = 2;
for (int i = 12; i >= 0; i--) {
int digit = Character.getNumericValue(cnpj.charAt(i));
sum += digit * weight;
weight = (weight + 1) % 9 + 2;
}
int digit2 = (sum % 11 < 2) ? 0 : 11 - (sum % 11);
if (Character.getNumericValue(cnpj.charAt(13)) != digit2) {
return false;
}

return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// CpfValidator.java
package io.github.gabriel_logan;

import io.github.gabriel_logan.types.ValidationResult;

public class CpfValidator {
private String getErrorMessage(int code) {
// Implemente esta função para retornar a mensagem de erro apropriada
return "";
}
public ValidationResult cpfIsValid(String cpf) {
try {
int numeroBase = 10;
int numeroBase2 = 11;
int somaTotal = 0;
int somaTotal2 = 0;

if (cpf.length() != 11) {
return new ValidationResult(false, getErrorMessage(2));
}

int primeiroVerificador = 0;
int segundoVerificador = 0;

for (int repetidor = 0; repetidor < 11; repetidor++) {
int multiplicador = Character.getNumericValue(cpf.charAt(repetidor)) * numeroBase;
numeroBase--;
somaTotal += multiplicador;

int multiplicador2 = Character.getNumericValue(cpf.charAt(repetidor)) * numeroBase2;
numeroBase2--;
somaTotal2 += multiplicador2;

int valorDeVerificacao = somaTotal - Character.getNumericValue(cpf.charAt(9));
int valorDeVerificacao2 = somaTotal2 - Character.getNumericValue(cpf.charAt(10));

primeiroVerificador = 11 - (valorDeVerificacao % 11);
segundoVerificador = 11 - (valorDeVerificacao2 % 11);
}

if (primeiroVerificador > 9) primeiroVerificador = 0;
if (segundoVerificador > 9) segundoVerificador = 0;

if (primeiroVerificador == Character.getNumericValue(cpf.charAt(9))
&& segundoVerificador == Character.getNumericValue(cpf.charAt(10))) {
return new ValidationResult(true, null);
}

return new ValidationResult(false, getErrorMessage(2));
} catch (Exception e) {
return new ValidationResult(false, getErrorMessage(3));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import java.util.regex.Pattern;

public class Main {
public static void main(String[] args) {
String email = "example@example.com";
boolean isValidEmail = isEmail(email);
System.out.println("Is email valid? " + isValidEmail);
}

public static boolean isEmail(String email) {
String emailRegex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$";
Pattern pattern = Pattern.compile(emailRegex);
return pattern.matcher(email).matches();
}
}

0 comments on commit 7b86de4

Please sign in to comment.