diff options
author | vlad <vlad@driver.xyz> | 2017-07-13 02:27:55 -0700 |
---|---|---|
committer | vlad <vlad@driver.xyz> | 2017-07-13 02:27:55 -0700 |
commit | 93eb4829c0d11959709e18a7b489343550633e83 (patch) | |
tree | 49ced7ef72180cbd29e2a8126684dedbd958a00c /src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala | |
parent | 3d902b5197db861c30325c159dc10cfb211ae209 (diff) | |
download | rest-query-93eb4829c0d11959709e18a7b489343550633e83.tar.gz rest-query-93eb4829c0d11959709e18a7b489343550633e83.tar.bz2 rest-query-93eb4829c0d11959709e18a7b489343550633e83.zip |
Updates for authentication
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala index 8dbedfe..c21edd1 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala @@ -3,14 +3,17 @@ package xyz.driver.pdsuidomain.formats.json.user import java.time.{ZoneId, ZonedDateTime} import xyz.driver.pdsuicommon.domain.User +import xyz.driver.pdsuicommon.json.Serialization.seqJsonFormat import play.api.data.validation.ValidationError import play.api.libs.functional.syntax._ import play.api.libs.json._ +import scala.collection.Seq + final case class ApiUser(id: String, email: String, name: String, - roleId: String, + roles: Seq[String], latestActivity: Option[ZonedDateTime]) object ApiUser { @@ -19,14 +22,10 @@ object ApiUser { (JsPath \ "id").format[String] and (JsPath \ "email").format[String](Reads.email) and (JsPath \ "name").format[String] and - (JsPath \ "roleId").format[String]( - Format(Reads - .of[String] - .filter(ValidationError("unknown role"))({ - case x if UserRole.roleFromString.isDefinedAt(x) => true - case _ => false - }), - Writes.of[String])) and + (JsPath \ "roles").format( + Format( + seqJsonFormat[String].filter(ValidationError("unknown role"))(_.forall(UserRole.roleFromString.isDefinedAt)), + Writes.of[Seq[String]])) and (JsPath \ "latestActivity").formatNullable[ZonedDateTime] )(ApiUser.apply, unlift(ApiUser.unapply)) @@ -34,7 +33,7 @@ object ApiUser { user.id.id, user.email.value, user.name, - UserRole.roleToString(user.role), + user.roles.map(UserRole.roleToString).toSeq, user.latestActivity.map(ZonedDateTime.of(_, ZoneId.of("Z"))) ) } |