Suppose I have a json writes like this
implicit val userWrites: Writes[User] = (
(__ \ "name").write[String] ~
(__ \ "email").write[String] ~
(__ \ "encryptedPassword").write[String] ~
(__ \ "id").writeNullable[Long]
)(unlift(User.unapply))
If I don't want to printout the password, and instead just print a string "hidden"
, how can I achieve this with combinator?
I am looking for a solution that looks similar to this
implicit val userWrites: Writes[User] = (
(__ \ "name").write[String] ~
(__ \ "email").write[String] ~
(__ \ "encryptedPassword").write[String](Writes.pure("hidden")) ~
(__ \ "id").writeNullable[Long]
)(unlift(User.unapply))
This should work:
implicit val userWrites: Writes[User] = (
(__ \ "name").write[String] ~
(__ \ "email").write[String] ~
(__ \ "encryptedPassword").write[String](Writes((_: String) => JsString("hidden"))) ~
(__ \ "id").writeNullable[Long]
)(unlift(User.unapply))