aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/domain.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/core/domain.scala')
-rw-r--r--src/main/scala/xyz/driver/core/domain.scala12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/scala/xyz/driver/core/domain.scala b/src/main/scala/xyz/driver/core/domain.scala
index 7731345..fa3b5c4 100644
--- a/src/main/scala/xyz/driver/core/domain.scala
+++ b/src/main/scala/xyz/driver/core/domain.scala
@@ -32,9 +32,15 @@ object domain {
private val phoneUtil = PhoneNumberUtil.getInstance()
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))
+ val phone = scala.util.Try(phoneUtil.parseAndKeepRawInput(phoneNumber, "US")).toOption
+
+ val validated = phone match {
+ case None => None
+ case Some(pn) =>
+ if (!phoneUtil.isValidNumber(pn)) None
+ else Some(pn)
+ }
+ validated.map(pn => PhoneNumber(pn.getCountryCode.toString, pn.getNationalNumber.toString))
}
}
}