/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1-dev * User agent: apibuilder app.apibuilder.io/natalia/favorite-places/0.0.1-dev/play_2_x_scala_3_standalone_json */ package natalia.favorite.places.v0.models { /** * Describes a place * * @param id Place id * @param name Place name * @param imageUrl Url of place photo */ final case class Place( id: String, name: String, imageUrl: String ) } package natalia.favorite.places.v0.models { package object json { import play.api.libs.json.__ import play.api.libs.json.JsString import play.api.libs.json.Writes import play.api.libs.functional.syntax._ import natalia.favorite.places.v0.models.json._ private[v0] implicit val jsonReadsUUID: play.api.libs.json.Reads[_root_.java.util.UUID] = __.read[String].map { str => _root_.java.util.UUID.fromString(str) } private[v0] implicit val jsonWritesUUID: play.api.libs.json.Writes[_root_.java.util.UUID] = (x: _root_.java.util.UUID) => play.api.libs.json.JsString(x.toString) private[v0] implicit val jsonReadsJodaDateTime: play.api.libs.json.Reads[_root_.org.joda.time.DateTime] = __.read[String].map { str => _root_.org.joda.time.format.ISODateTimeFormat.dateTimeParser.parseDateTime(str) } private[v0] implicit val jsonWritesJodaDateTime: play.api.libs.json.Writes[_root_.org.joda.time.DateTime] = (x: _root_.org.joda.time.DateTime) => { play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.dateTime.print(x)) } private[v0] implicit val jsonReadsJodaLocalDate: play.api.libs.json.Reads[_root_.org.joda.time.LocalDate] = __.read[String].map { str => _root_.org.joda.time.format.ISODateTimeFormat.dateTimeParser.parseLocalDate(str) } private[v0] implicit val jsonWritesJodaLocalDate: play.api.libs.json.Writes[_root_.org.joda.time.LocalDate] = (x: _root_.org.joda.time.LocalDate) => { play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.date.print(x)) } implicit def jsonReadsFavoritePlacesPlace: play.api.libs.json.Reads[natalia.favorite.places.v0.models.Place] = { for { id <- (__ \ "id").read[String] name <- (__ \ "name").read[String] imageUrl <- (__ \ "imageUrl").read[String] } yield Place(id, name, imageUrl) } def jsObjectPlace(obj: natalia.favorite.places.v0.models.Place): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "id" -> play.api.libs.json.JsString(obj.id), "name" -> play.api.libs.json.JsString(obj.name), "imageUrl" -> play.api.libs.json.JsString(obj.imageUrl) ) } implicit def jsonWritesFavoritePlacesPlace: play.api.libs.json.Writes[Place] = { (obj: natalia.favorite.places.v0.models.Place) => { natalia.favorite.places.v0.models.json.jsObjectPlace(obj) } } } }