[phonenumber validation] allow to validate against landline and mobile

phonenumbers
This commit is contained in:
Julien Fastré 2020-02-10 13:03:57 +01:00
parent d46ee72fb1
commit e348616d00
5 changed files with 30 additions and 3 deletions

View File

@ -103,3 +103,5 @@ Branch CRUD-Init
- css: add a margin on the button "delete entry" in collection
- module `show_hide`: add the possibility to launch a show hide manually and not on page loading. Useful when show/hide occurs in collection.
- module `show_hide`: add events to module
- [phonenumber validation] allow to validate against mobile **or** landline/voip phonenumbers;

View File

@ -122,6 +122,24 @@ class PhonenumberHelper
return \in_array($validation, [ 'landline', 'voip' ]);
}
/**
* Return true if the phonenumber is a landline or voip phone. Return always false
* if the validation is not configured.
*
* @param string $phonenumber
* @return bool
*/
public function isValidPhonenumberAny($phonenumber) : bool
{
$validation = $this->performTwilioLookup($phonenumber);
if (NULL === $validation) {
return false;
}
return \in_array($validation, [ 'landline', 'voip', 'mobile' ]);
}
public function format($phonenumber)
{
return $this->performTwilioFormat($phonenumber);

View File

@ -17,3 +17,4 @@ This username or email does not exists: Cet utilisateur ou email n'est pas prés
#phonenumber
This is not a landline phonenumber: Ce numéro n'est pas une ligne fixe valide
This is not a mobile phonenumber: Ce numéro n'est pas un numéro de portable valide
This is not a valid phonenumber: Ce numéro de téléphone n'est pas valide

View File

@ -21,7 +21,7 @@ use Symfony\Component\Validator\Constraint;
/**
*
*
* @Annotation
*/
class PhonenumberConstraint extends Constraint
{
@ -29,10 +29,12 @@ class PhonenumberConstraint extends Constraint
public $notLandlineMessage = "This is not a landline phonenumber";
public $notValidMessage = "This is not a valid phonenumber";
/**
* The type of phone: landline (not able to receive sms) or mobile (can receive sms)
*
* @var string 'landline' or 'mobile'
* @var string 'landline', 'mobile' or 'any'
*/
public $type = null;

View File

@ -70,10 +70,14 @@ class ValidPhonenumber extends ConstraintValidator
$isValid = $this->phonenumberHelper->isValidPhonenumberMobile($value);
$message = $constraint->notMobileMessage;
break;
case 'any':
$isValid = $this->phonenumberHelper->isValidPhonenumberAny($value);
$message = $constraint->notValidMessage;
break;
default:
throw new \LogicException(sprintf("This type '%s' is not implemented. "
. "Possible values are 'mobile', 'landline'"), $constraint->type);
. "Possible values are 'mobile', 'landline' or 'any'", $constraint->type));
}
if (FALSE === $isValid) {