diff --git a/src/Bundle/ChillMainBundle/Phonenumber/PhoneNumberHelperInterface.php b/src/Bundle/ChillMainBundle/Phonenumber/PhoneNumberHelperInterface.php index dbf78003c..9cd5605f8 100644 --- a/src/Bundle/ChillMainBundle/Phonenumber/PhoneNumberHelperInterface.php +++ b/src/Bundle/ChillMainBundle/Phonenumber/PhoneNumberHelperInterface.php @@ -22,8 +22,6 @@ use libphonenumber\PhoneNumber; */ interface PhoneNumberHelperInterface { - public function denormalize(PhoneNumber $phoneNumber): string; - public function format(PhoneNumber $phonenumber): string; /** @@ -54,5 +52,4 @@ interface PhoneNumberHelperInterface */ public function isValidPhonenumberMobile(string $phonenumber): bool; - public function normalize(string $phoneNumber): string; } diff --git a/src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php b/src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php index 26f6b6e2a..b82159185 100644 --- a/src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php +++ b/src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php @@ -73,11 +73,6 @@ final class PhonenumberHelper implements PhoneNumberHelperInterface $this->phoneNumberUtil = PhoneNumberUtil::getInstance(); } - public function denormalize(PhoneNumber $phoneNumber): string - { - return $this->format($phoneNumber); - } - /** * @param string $phoneNumber A national phone number starting with + * @@ -167,78 +162,6 @@ final class PhonenumberHelper implements PhoneNumberHelperInterface return 'mobile' === $validation; } - public function normalize(string $phoneNumber): string - { - $phoneUtil = PhoneNumberUtil::getInstance(); - - return $phoneUtil - ->format( - $phoneUtil->parse($phoneNumber, $this->config['default_carrier_code']), - PhoneNumberFormat::E164 - ); - } - - private function performTwilioFormat($phonenumber) - { - if (false === $this->isPhonenumberValidationConfigured()) { - return $phonenumber; - } - - // filter only number - $filtered = preg_replace('/[^0-9]/', '', $phonenumber); - - $item = $this->cachePool->getItem('pnum_format_nat_' . $filtered); - - if ($item->isHit()) { - return $item->get(); - } - - try { - $response = $this->twilioClient->get(sprintf(self::FORMAT_URI, '+' . $filtered), [ - 'http_errors' => true, - ]); - } catch (ClientException $e) { - $response = $e->getResponse(); - $this->logger->error('[phonenumber helper] Could not format number ' - . 'due to client error', [ - 'message' => $response->getBody()->getContents(), - 'status_code' => $response->getStatusCode(), - 'phonenumber' => $phonenumber, - ]); - - return $phonenumber; - } catch (ServerException $e) { - $response = $e->getResponse(); - $this->logger->error('[phonenumber helper] Could not format number ' - . 'due to server error', [ - 'message' => $response->getBody()->getContents(), - 'status_code' => $response->getStatusCode(), - 'phonenumber' => $phonenumber, - ]); - - return null; - } catch (ConnectException $e) { - $this->logger->error('[phonenumber helper] Could not format number ' - . 'due to connect error', [ - 'message' => $e->getMessage(), - 'phonenumber' => $phonenumber, - ]); - - return null; - } - - $format = json_decode($response->getBody()->getContents())->national_format; - - $item - ->set($format) - // expires after 3d - ->expiresAfter(3600 * 24 * 3); - - $this->cachePool->save($item); - - return $format; - } - private function performTwilioLookup($phonenumber) { if (false === $this->isPhonenumberValidationConfigured()) { diff --git a/src/Bundle/ChillMainBundle/Tests/Phonenumber/PhonenumberHelperTest.php b/src/Bundle/ChillMainBundle/Tests/Phonenumber/PhonenumberHelperTest.php index d344af3ed..59f0cde45 100644 --- a/src/Bundle/ChillMainBundle/Tests/Phonenumber/PhonenumberHelperTest.php +++ b/src/Bundle/ChillMainBundle/Tests/Phonenumber/PhonenumberHelperTest.php @@ -12,6 +12,8 @@ declare(strict_types=1); namespace Chill\MainBundle\Tests\Routing\Loader; use Chill\MainBundle\Phonenumber\PhonenumberHelper; +use libphonenumber\PhoneNumber; +use libphonenumber\PhoneNumberUtil; use Psr\Log\NullLogger; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Component\Cache\Adapter\ArrayAdapter; @@ -23,21 +25,6 @@ use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; */ final class PhonenumberHelperTest extends KernelTestCase { - public function denormalizePhonenumbers() - { - yield [ - 'BE', - '+3281136917', - '+3281136917', - ]; - - yield [ - 'BE', - '+33 6 23 12 45 54', - '+33623124554', - ]; - } - public function formatPhonenumbers() { yield [ @@ -55,72 +42,22 @@ final class PhonenumberHelperTest extends KernelTestCase yield [ 'FR', '+32 81 13 69 17', - '081 13 69 17', + '00 32 81 13 69 17', ]; yield [ 'BE', '+33 6 23 12 45 54', - '06 23 12 45 54', + '00 33 6 23 12 45 54', ]; } - public function normalizePhonenumbers() - { - yield [ - 'BE', - '081136917', - '+3281136917', - ]; - - yield [ - 'BE', - '003281136917', - '+3281136917', - ]; - - yield [ - 'BE', - '0032478123456', - '+32478123456', - ]; - - yield [ - 'BE', - '0478123456', - '+32478123456', - ]; - - yield [ - 'FR', - '0623124554', - '+33623124554', - ]; - } - - /** - * @dataProvider denormalizePhonenumbers - */ - public function testDenormalizePhonenumbers(string $defaultCarrierCode, string $phoneNumber, string $expected) - { - $subject = new PhonenumberHelper( - new ArrayAdapter(), - new ParameterBag([ - 'chill_main.phone_helper' => [ - 'default_carrier_code' => $defaultCarrierCode, - ], - ]), - new NullLogger() - ); - - $this->assertEquals($expected, $subject->denormalize($phoneNumber)); - } - /** * @dataProvider formatPhonenumbers */ public function testFormatPhonenumbers(string $defaultCarrierCode, string $phoneNumber, string $expected) { + $util = PhoneNumberUtil::getInstance(); $subject = new PhonenumberHelper( new ArrayAdapter(), new ParameterBag([ @@ -131,24 +68,6 @@ final class PhonenumberHelperTest extends KernelTestCase new NullLogger() ); - $this->assertEquals($expected, $subject->format($phoneNumber)); - } - - /** - * @dataProvider normalizePhonenumbers - */ - public function testNormalizePhonenumbers(string $defaultCarrierCode, string $phoneNumber, string $expected) - { - $subject = new PhonenumberHelper( - new ArrayAdapter(), - new ParameterBag([ - 'chill_main.phone_helper' => [ - 'default_carrier_code' => $defaultCarrierCode, - ], - ]), - new NullLogger() - ); - - $this->assertEquals($expected, $subject->normalize($phoneNumber)); + $this->assertEquals($expected, $subject->format($util->parse($phoneNumber))); } }