diff --git a/src/Bundle/ChillJobBundle/src/Entity/Immersion.php b/src/Bundle/ChillJobBundle/src/Entity/Immersion.php index 5ae19a365..2d8ee6281 100644 --- a/src/Bundle/ChillJobBundle/src/Entity/Immersion.php +++ b/src/Bundle/ChillJobBundle/src/Entity/Immersion.php @@ -86,14 +86,14 @@ class Immersion implements \Stringable * @Assert\NotBlank() */ #[ORM\Column(name: 'tuteurPhoneNumber', type: 'phone_number', nullable: true)] - #[PhonenumberConstraint(type: 'any')] + #[\Misd\PhoneNumberBundle\Validator\Constraints\PhoneNumber] private ?PhoneNumber $tuteurPhoneNumber = null; #[ORM\Column(name: 'structureAccName', type: \Doctrine\DBAL\Types\Types::TEXT, nullable: true)] private ?string $structureAccName = null; #[ORM\Column(name: 'structureAccPhonenumber', type: 'phone_number', nullable: true)] - #[PhonenumberConstraint(type: 'any')] + #[\Misd\PhoneNumberBundle\Validator\Constraints\PhoneNumber] private ?PhoneNumber $structureAccPhonenumber = null; #[ORM\Column(name: 'structureAccEmail', type: \Doctrine\DBAL\Types\Types::TEXT, nullable: true)] diff --git a/src/Bundle/ChillMainBundle/Entity/Location.php b/src/Bundle/ChillMainBundle/Entity/Location.php index 5705e6a1a..e2605f9a1 100644 --- a/src/Bundle/ChillMainBundle/Entity/Location.php +++ b/src/Bundle/ChillMainBundle/Entity/Location.php @@ -14,9 +14,9 @@ namespace Chill\MainBundle\Entity; use Chill\MainBundle\Doctrine\Model\TrackCreationInterface; use Chill\MainBundle\Doctrine\Model\TrackUpdateInterface; use Chill\MainBundle\Repository\LocationRepository; -use Chill\MainBundle\Validation\Constraint\PhonenumberConstraint; use Doctrine\ORM\Mapping as ORM; use libphonenumber\PhoneNumber; +use Misd\PhoneNumberBundle\Validator\Constraints\PhoneNumber as MisdPhoneNumberConstraint; use Symfony\Component\Serializer\Annotation as Serializer; use Symfony\Component\Serializer\Annotation\DiscriminatorMap; @@ -67,12 +67,12 @@ class Location implements TrackCreationInterface, TrackUpdateInterface #[Serializer\Groups(['read', 'write', 'docgen:read'])] #[ORM\Column(type: 'phone_number', nullable: true)] - #[PhonenumberConstraint(type: 'any')] + #[MisdPhoneNumberConstraint(type: [MisdPhoneNumberConstraint::ANY])] private ?PhoneNumber $phonenumber1 = null; #[Serializer\Groups(['read', 'write', 'docgen:read'])] #[ORM\Column(type: 'phone_number', nullable: true)] - #[PhonenumberConstraint(type: 'any')] + #[MisdPhoneNumberConstraint(type: [MisdPhoneNumberConstraint::ANY])] private ?PhoneNumber $phonenumber2 = null; #[Serializer\Groups(['read'])] diff --git a/src/Bundle/ChillMainBundle/Entity/User.php b/src/Bundle/ChillMainBundle/Entity/User.php index 61263ef85..472b18d99 100644 --- a/src/Bundle/ChillMainBundle/Entity/User.php +++ b/src/Bundle/ChillMainBundle/Entity/User.php @@ -23,7 +23,6 @@ use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Serializer\Annotation as Serializer; use Symfony\Component\Validator\Context\ExecutionContextInterface; -use Chill\MainBundle\Validation\Constraint\PhonenumberConstraint; /** * User. @@ -116,7 +115,7 @@ class User implements UserInterface, \Stringable, PasswordAuthenticatedUserInter * The user's mobile phone number. */ #[ORM\Column(type: 'phone_number', nullable: true)] - #[PhonenumberConstraint] + #[\Misd\PhoneNumberBundle\Validator\Constraints\PhoneNumber] private ?PhoneNumber $phonenumber = null; /** diff --git a/src/Bundle/ChillMainBundle/Phonenumber/PhoneNumberHelperInterface.php b/src/Bundle/ChillMainBundle/Phonenumber/PhoneNumberHelperInterface.php index c7cf1ddfd..ca0e3e8e0 100644 --- a/src/Bundle/ChillMainBundle/Phonenumber/PhoneNumberHelperInterface.php +++ b/src/Bundle/ChillMainBundle/Phonenumber/PhoneNumberHelperInterface.php @@ -31,6 +31,8 @@ interface PhoneNumberHelperInterface /** * Return true if the validation is configured and available. + * + * @deprecated this is an internal behaviour of the helper and should not be taken into account outside of the implementation */ public function isPhonenumberValidationConfigured(): bool; diff --git a/src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php b/src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php index 8a7574ac0..9b103f275 100644 --- a/src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php +++ b/src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php @@ -122,7 +122,7 @@ final class PhonenumberHelper implements PhoneNumberHelperInterface */ public function isValidPhonenumberAny($phonenumber): bool { - if (false === $this->isPhonenumberValidationConfigured()) { + if (false === $this->isConfigured) { return true; } $validation = $this->performTwilioLookup($phonenumber); @@ -142,7 +142,7 @@ final class PhonenumberHelper implements PhoneNumberHelperInterface */ public function isValidPhonenumberLandOrVoip($phonenumber): bool { - if (false === $this->isPhonenumberValidationConfigured()) { + if (false === $this->isConfigured) { return true; } @@ -163,7 +163,7 @@ final class PhonenumberHelper implements PhoneNumberHelperInterface */ public function isValidPhonenumberMobile($phonenumber): bool { - if (false === $this->isPhonenumberValidationConfigured()) { + if (false === $this->isConfigured) { return true; } @@ -178,7 +178,7 @@ final class PhonenumberHelper implements PhoneNumberHelperInterface private function performTwilioLookup($phonenumber) { - if (false === $this->isPhonenumberValidationConfigured()) { + if (false === $this->isConfigured) { return null; } diff --git a/src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php b/src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php index 28d7c623d..6ce79e37d 100644 --- a/src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php +++ b/src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php @@ -46,7 +46,10 @@ class PhonenumberNormalizer implements ContextAwareNormalizerInterface, Denormal try { return $this->phoneNumberUtil->parse($data, $this->defaultCarrierCode); } catch (NumberParseException $e) { - throw new UnexpectedValueException($e->getMessage(), $e->getCode(), $e); + $phonenumber = new PhoneNumber(); + $phonenumber->setRawInput($data); + + return $phonenumber; } } diff --git a/src/Bundle/ChillMainBundle/Validation/Constraint/PhonenumberConstraint.php b/src/Bundle/ChillMainBundle/Validation/Constraint/PhonenumberConstraint.php index 2c20de854..6b5be58b8 100644 --- a/src/Bundle/ChillMainBundle/Validation/Constraint/PhonenumberConstraint.php +++ b/src/Bundle/ChillMainBundle/Validation/Constraint/PhonenumberConstraint.php @@ -13,6 +13,9 @@ namespace Chill\MainBundle\Validation\Constraint; use Symfony\Component\Validator\Constraint; +/** + * @deprecated use odolbeau/phonenumber validator instead + */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD)] class PhonenumberConstraint extends Constraint { diff --git a/src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php b/src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php index 0c02885ad..594429b15 100644 --- a/src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php +++ b/src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php @@ -16,6 +16,9 @@ use Psr\Log\LoggerInterface; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; +/** + * @deprecated use https://github.com/odolbeau/phone-number-bundle/blob/master/src/Validator/Constraints/PhoneNumberValidator.php instead + */ final class ValidPhonenumber extends ConstraintValidator { public function __construct(private readonly LoggerInterface $logger, private readonly PhoneNumberHelperInterface $phonenumberHelper) {} diff --git a/src/Bundle/ChillPersonBundle/Entity/Person.php b/src/Bundle/ChillPersonBundle/Entity/Person.php index aa78774b6..09b52b2ce 100644 --- a/src/Bundle/ChillPersonBundle/Entity/Person.php +++ b/src/Bundle/ChillPersonBundle/Entity/Person.php @@ -27,7 +27,6 @@ use Chill\MainBundle\Entity\Language; use Chill\MainBundle\Entity\User; use Chill\MainBundle\Entity\Workflow\EntityWorkflowSignatureStateEnum; use Chill\MainBundle\Entity\Workflow\EntityWorkflowStepSignature; -use Chill\MainBundle\Validation\Constraint\PhonenumberConstraint; use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Household\HouseholdMember; use Chill\PersonBundle\Entity\Household\PersonHouseholdAddress; @@ -47,6 +46,7 @@ use Doctrine\Common\Collections\ReadableCollection; use Doctrine\Common\Collections\Selectable; use Doctrine\ORM\Mapping as ORM; use libphonenumber\PhoneNumber; +use Misd\PhoneNumberBundle\Validator\Constraints\PhoneNumber as MisdPhoneNumberConstraint; use Symfony\Component\Serializer\Annotation\DiscriminatorMap; use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Context\ExecutionContextInterface; @@ -319,7 +319,7 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * The person's mobile phone number. */ #[ORM\Column(type: 'phone_number', nullable: true)] - #[PhonenumberConstraint(type: 'mobile')] + #[MisdPhoneNumberConstraint(type: [MisdPhoneNumberConstraint::MOBILE])] private ?PhoneNumber $mobilenumber = null; /** @@ -359,7 +359,7 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * The person's phonenumber. */ #[ORM\Column(type: 'phone_number', nullable: true)] - #[PhonenumberConstraint(type: 'landline')] + #[MisdPhoneNumberConstraint(type: [MisdPhoneNumberConstraint::FIXED_LINE, MisdPhoneNumberConstraint::VOIP, MisdPhoneNumberConstraint::PERSONAL_NUMBER])] private ?PhoneNumber $phonenumber = null; /** diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/PersonEdit.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/PersonEdit.vue index 54154ebd4..40b03e4e2 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/PersonEdit.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/PersonEdit.vue @@ -6,7 +6,6 @@ id="lastname" v-model="lastName" :placeholder="trans(PERSON_MESSAGES_PERSON_LASTNAME)" - @change="checkErrors" /> @@ -29,7 +28,6 @@ id="firstname" v-model="firstName" :placeholder="trans(PERSON_MESSAGES_PERSON_FIRSTNAME)" - @change="checkErrors" />