call method
Implementation
FutureOr<PasswordStrength> call(FutureOr<String> password) async {
PasswordStrength response = PasswordStrength.veryWeek;
final realPassword = (await password).trim();
if (realPassword.length < minPasswordLength) {
response = PasswordStrength.tiny;
} else {
int points = 0;
if (_lowerCase.hasMatch(realPassword)) {
points += 1;
}
if (_upperCase.hasMatch(realPassword)) {
points += 1;
}
if (_numberCase.hasMatch(realPassword)) {
points += 1;
}
if (_symbolsCase.hasMatch(realPassword)) {
points += 1;
}
switch (points) {
case 0:
response = PasswordStrength.veryWeek;
break;
case 1:
response = PasswordStrength.veryWeek;
break;
case 2:
response = PasswordStrength.week;
break;
case 3:
response = PasswordStrength.good;
break;
case 4:
response = PasswordStrength.strong;
break;
}
}
return response;
}