diff options
author | Aleksandr <ognelisar@gmail.com> | 2018-04-03 10:48:10 +0700 |
---|---|---|
committer | Aleksandr <ognelisar@gmail.com> | 2018-04-03 10:48:10 +0700 |
commit | acf366c1a7f4b7dc7758d8a73b2e497068bb1fe8 (patch) | |
tree | faf601fa831be596fffaeb737a52e508a1473523 /src/main/scala/xyz/driver/core/domain.scala | |
parent | 04a21e9a5ab46f885cb51626d274d570fefe4a29 (diff) | |
parent | 322bbc9010e20195e5b0bb58e703961738ffb89d (diff) | |
download | driver-core-acf366c1a7f4b7dc7758d8a73b2e497068bb1fe8.tar.gz driver-core-acf366c1a7f4b7dc7758d8a73b2e497068bb1fe8.tar.bz2 driver-core-acf366c1a7f4b7dc7758d8a73b2e497068bb1fe8.zip |
Merge branch 'master' into TM-1431
Diffstat (limited to 'src/main/scala/xyz/driver/core/domain.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/domain.scala | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/main/scala/xyz/driver/core/domain.scala b/src/main/scala/xyz/driver/core/domain.scala index 48943a7..7731345 100644 --- a/src/main/scala/xyz/driver/core/domain.scala +++ b/src/main/scala/xyz/driver/core/domain.scala @@ -1,13 +1,14 @@ package xyz.driver.core +import com.google.i18n.phonenumbers.PhoneNumberUtil import scalaz.Equal -import scalaz.syntax.equal._ import scalaz.std.string._ +import scalaz.syntax.equal._ object domain { final case class Email(username: String, domain: String) { - override def toString = username + "@" + domain + override def toString: String = username + "@" + domain } object Email { @@ -27,16 +28,13 @@ object domain { } object PhoneNumber { - def parse(phoneNumberString: String): Option[PhoneNumber] = { - val onlyDigits = phoneNumberString.replaceAll("[^\\d.]", "") - if (onlyDigits.length < 10) None - else { - val tenDigitNumber = onlyDigits.takeRight(10) - val countryCode = Option(onlyDigits.dropRight(10)).filter(_.nonEmpty).getOrElse("1") + private val phoneUtil = PhoneNumberUtil.getInstance() - Some(PhoneNumber(countryCode, tenDigitNumber)) - } + def parse(phoneNumber: String): Option[PhoneNumber] = { + val phone = phoneUtil.parseAndKeepRawInput(phoneNumber, "US") + if (!phoneUtil.isValidNumber(phone)) None + else Some(PhoneNumber(phone.getCountryCode.toString, phone.getNationalNumber.toString)) } } } |