aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/domain.scala
diff options
context:
space:
mode:
authorArthur Rand <arand@ucsc.edu>2018-05-16 05:55:27 -0700
committerGitHub <noreply@github.com>2018-05-16 05:55:27 -0700
commit57cd7aaf5a2154af698fddc39f4bff8fd3e4f6e7 (patch)
treeefc31d48b45c10d2d2b911ab1476f2c13e86c98c /src/main/scala/xyz/driver/core/domain.scala
parent803c76244bd7a4772f727e5b47f84bcc9f5adcd4 (diff)
downloaddriver-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.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))
}
}
}