diff options
author | Arthur Rand <arand@ucsc.edu> | 2018-05-16 05:55:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-16 05:55:27 -0700 |
commit | 57cd7aaf5a2154af698fddc39f4bff8fd3e4f6e7 (patch) | |
tree | efc31d48b45c10d2d2b911ab1476f2c13e86c98c /src/main/scala/xyz/driver/core/domain.scala | |
parent | 803c76244bd7a4772f727e5b47f84bcc9f5adcd4 (diff) | |
download | driver-core-57cd7aaf5a2154af698fddc39f4bff8fd3e4f6e7.tar.gz driver-core-57cd7aaf5a2154af698fddc39f4bff8fd3e4f6e7.tar.bz2 driver-core-57cd7aaf5a2154af698fddc39f4bff8fd3e4f6e7.zip |
[API-1584] Change AuthCredentials to accept a string identifier (#166)v1.9.3
* make email optional, add optional phone number to AuthCredentials
* make AuthCredentials take a String instead of an email
* wrap phone number parsing in Try
* add json formatter for AuthCredentials
* try val
Diffstat (limited to 'src/main/scala/xyz/driver/core/domain.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/domain.scala | 12 |
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)) } } } |