aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/formats/json/user
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json/user')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala32
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/user/UserRole.scala40
3 files changed, 49 insertions, 37 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala
index 977934b..654508c 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala
@@ -14,9 +14,7 @@ import ApiPartialUser._
import xyz.driver.pdsuicommon.json.JsonValidationException
import xyz.driver.pdsuicommon.validation.{AdditionalConstraints, JsonValidationErrors}
-final case class ApiPartialUser(email: Option[String],
- name: Option[String],
- roleId: Option[String]) {
+final case class ApiPartialUser(email: Option[String], name: Option[String], roleId: Option[String]) {
def applyTo(orig: User): Try[User] = Try {
val validation = Map(
@@ -36,8 +34,8 @@ final case class ApiPartialUser(email: Option[String],
def toDomain(id: LongId[User] = LongId(0L)): Try[User] = Try {
val validation = Map(
- JsPath \ "email" -> AdditionalConstraints.optionNonEmptyConstraint(email),
- JsPath \ "name" -> AdditionalConstraints.optionNonEmptyConstraint(name),
+ JsPath \ "email" -> AdditionalConstraints.optionNonEmptyConstraint(email),
+ JsPath \ "name" -> AdditionalConstraints.optionNonEmptyConstraint(name),
JsPath \ "roleId" -> AdditionalConstraints.optionNonEmptyConstraint(roleId)
)
@@ -71,13 +69,19 @@ object ApiPartialUser {
implicit val format: Format[ApiPartialUser] = (
(JsPath \ "email").formatNullable[String](Format(Reads.email, Writes.StringWrites)) and
- (JsPath \ "name").formatNullable[String](Format(
- Reads.filterNot[String](ValidationError("Username is too long (max length is 255 chars)", 255))(_.length > 255),
- Writes.StringWrites
- )) and
- (JsPath \ "roleId").formatNullable[String](Format(Reads.of[String].filter(ValidationError("unknown role"))({
- case x if UserRole.roleFromString.isDefinedAt(x) => true
- case _ => false
- }), Writes.of[String]))
- ) (ApiPartialUser.apply, unlift(ApiPartialUser.unapply))
+ (JsPath \ "name").formatNullable[String](
+ Format(
+ Reads.filterNot[String](ValidationError("Username is too long (max length is 255 chars)", 255))(
+ _.length > 255),
+ Writes.StringWrites
+ )) and
+ (JsPath \ "roleId").formatNullable[String](
+ Format(Reads
+ .of[String]
+ .filter(ValidationError("unknown role"))({
+ case x if UserRole.roleFromString.isDefinedAt(x) => true
+ case _ => false
+ }),
+ Writes.of[String]))
+ )(ApiPartialUser.apply, unlift(ApiPartialUser.unapply))
}
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 c2653ec..29138ed 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
@@ -15,12 +15,16 @@ object ApiUser {
(JsPath \ "id").format[Long] 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 \ "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 \ "latestActivity").formatNullable[ZonedDateTime]
- ) (ApiUser.apply, unlift(ApiUser.unapply))
+ )(ApiUser.apply, unlift(ApiUser.unapply))
def fromDomain(user: User) = ApiUser(
user.id.id,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/UserRole.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/UserRole.scala
index 74acb81..412a969 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/UserRole.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/UserRole.scala
@@ -5,29 +5,33 @@ import xyz.driver.pdsuicommon.domain.User.Role
object UserRole {
val roleFromString: PartialFunction[String, Role] = {
- case "Cleaner" => Role.RecordCleaner
- case "Organizer" => Role.RecordOrganizer
- case "Extractor" => Role.DocumentExtractor
- case "RecordAdmin" => Role.RecordAdmin
- case "TrialSummarizer" => Role.TrialSummarizer
- case "CriteriaCurator" => Role.CriteriaCurator
- case "TrialAdmin" => Role.TrialAdmin
- case "EligibilityVerifier" => Role.EligibilityVerifier
+ case "Cleaner" => Role.RecordCleaner
+ case "Organizer" => Role.RecordOrganizer
+ case "Extractor" => Role.DocumentExtractor
+ case "RecordAdmin" => Role.RecordAdmin
+ case "TrialSummarizer" => Role.TrialSummarizer
+ case "CriteriaCurator" => Role.CriteriaCurator
+ case "TrialAdmin" => Role.TrialAdmin
+ case "EligibilityVerifier" => Role.EligibilityVerifier
case "TreatmentMatchingAdmin" => Role.TreatmentMatchingAdmin
- case "RoutesCurator" => Role.RoutesCurator
+ case "RoutesCurator" => Role.RoutesCurator
+ case "SystemUser" => Role.SystemUser
+ case "ResearchOncologist" => Role.ResearchOncologist
// No Mixed at this time
}
def roleToString(x: Role): String = x match {
- case Role.RecordCleaner => "Cleaner"
- case Role.RecordOrganizer => "Organizer"
- case Role.DocumentExtractor => "Extractor"
- case Role.RecordAdmin => "RecordAdmin"
- case Role.TrialSummarizer => "TrialSummarizer"
- case Role.CriteriaCurator => "CriteriaCurator"
- case Role.TrialAdmin => "TrialAdmin"
- case Role.EligibilityVerifier => "EligibilityVerifier"
+ case Role.RecordCleaner => "Cleaner"
+ case Role.RecordOrganizer => "Organizer"
+ case Role.DocumentExtractor => "Extractor"
+ case Role.RecordAdmin => "RecordAdmin"
+ case Role.TrialSummarizer => "TrialSummarizer"
+ case Role.CriteriaCurator => "CriteriaCurator"
+ case Role.TrialAdmin => "TrialAdmin"
+ case Role.EligibilityVerifier => "EligibilityVerifier"
case Role.TreatmentMatchingAdmin => "TreatmentMatchingAdmin"
- case Role.RoutesCurator => "RoutesCurator"
+ case Role.RoutesCurator => "RoutesCurator"
+ case Role.SystemUser => "SystemUser"
+ case Role.ResearchOncologist => "ResearchOncologist"
}
}