/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.5-dev * User agent: apibuilder app.apibuilder.io/michal/state-example/0.0.5-dev/play_2_6 */ package io.github.mkows.state.example.v0.models package object json { import play.api.libs.json.{__, JsString, Writes} import play.api.libs.functional.syntax._ import play.api.libs.json.Writes._ import play.api.libs.json.Reads._ import io.github.mkows.state.example.v0.models.json._ implicit val jsonReadsStateExampleItemStateFailedCause : play.api.libs.json.Reads[io.github.mkows.state.example.v0.models.ItemStateFailedCause] = new play.api.libs.json.Reads[io.github.mkows.state.example.v0.models.ItemStateFailedCause] { def reads( js: play.api.libs.json.JsValue ): play.api.libs.json.JsResult[io.github.mkows.state.example.v0.models.ItemStateFailedCause] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(io.github.mkows.state.example.v0.models.ItemStateFailedCause(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(io.github.mkows.state.example.v0.models.ItemStateFailedCause(v)) case err: play.api.libs.json.JsError => (js \ "item_state_failed_cause").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(io.github.mkows.state.example.v0.models.ItemStateFailedCause(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesStateExampleItemStateFailedCause(obj: io.github.mkows.state.example.v0.models.ItemStateFailedCause) = { play.api.libs.json.JsString(obj.toString) } def jsObjectItemStateFailedCause(obj: io.github.mkows.state.example.v0.models.ItemStateFailedCause) = { play.api.libs.json.Json .obj("type" -> "item_state_failed_cause", "value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesStateExampleItemStateFailedCause: play.api.libs.json.Writes[ItemStateFailedCause] = { (obj: io.github.mkows.state.example.v0.models.ItemStateFailedCause) => { io.github.mkows.state.example.v0.models.json.jsObjectItemStateFailedCause(obj) } } implicit val jsonReadsStateExampleItemStateProgress : play.api.libs.json.Reads[io.github.mkows.state.example.v0.models.ItemStateProgress] = new play.api.libs.json.Reads[io.github.mkows.state.example.v0.models.ItemStateProgress] { def reads( js: play.api.libs.json.JsValue ): play.api.libs.json.JsResult[io.github.mkows.state.example.v0.models.ItemStateProgress] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(io.github.mkows.state.example.v0.models.ItemStateProgress(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(io.github.mkows.state.example.v0.models.ItemStateProgress(v)) case err: play.api.libs.json.JsError => (js \ "item_state_progress").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(io.github.mkows.state.example.v0.models.ItemStateProgress(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesStateExampleItemStateProgress(obj: io.github.mkows.state.example.v0.models.ItemStateProgress) = { play.api.libs.json.JsString(obj.toString) } def jsObjectItemStateProgress(obj: io.github.mkows.state.example.v0.models.ItemStateProgress) = { play.api.libs.json.Json.obj("type" -> "item_state_progress", "value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesStateExampleItemStateProgress: play.api.libs.json.Writes[ItemStateProgress] = { (obj: io.github.mkows.state.example.v0.models.ItemStateProgress) => { io.github.mkows.state.example.v0.models.json.jsObjectItemStateProgress(obj) } } implicit def jsonReadsStateExampleError: play.api.libs.json.Reads[io.github.mkows.state.example.v0.models.Error] = { for { code <- (__ \ "code").read[Int] message <- (__ \ "message").read[String] details <- (__ \ "details").readNullable[String] } yield Error(code, message, details) } def jsObjectError(obj: io.github.mkows.state.example.v0.models.Error): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "code" -> play.api.libs.json.JsNumber(obj.code), "message" -> play.api.libs.json.JsString(obj.message) ) ++ (obj.details match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("details" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesStateExampleError: play.api.libs.json.Writes[Error] = { (obj: io.github.mkows.state.example.v0.models.Error) => { io.github.mkows.state.example.v0.models.json.jsObjectError(obj) } } implicit def jsonReadsStateExampleHealthcheck : play.api.libs.json.Reads[io.github.mkows.state.example.v0.models.Healthcheck] = { (__ \ "status").read[String].map { x => Healthcheck(status = x) } } def jsObjectHealthcheck(obj: io.github.mkows.state.example.v0.models.Healthcheck): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "status" -> play.api.libs.json.JsString(obj.status) ) } implicit def jsonWritesStateExampleHealthcheck: play.api.libs.json.Writes[Healthcheck] = { (obj: io.github.mkows.state.example.v0.models.Healthcheck) => { io.github.mkows.state.example.v0.models.json.jsObjectHealthcheck(obj) } } implicit def jsonReadsStateExampleItemState : play.api.libs.json.Reads[io.github.mkows.state.example.v0.models.ItemState] = (js: play.api.libs.json.JsValue) => { def readDiscriminator(discriminator: String) = { discriminator match { case "item_state_progress" => io.github.mkows.state.example.v0.models.json.jsonReadsStateExampleItemStateProgress.reads(js) case "item_state_failed_cause" => io.github.mkows.state.example.v0.models.json.jsonReadsStateExampleItemStateFailedCause.reads(js) case other => play.api.libs.json.JsSuccess(io.github.mkows.state.example.v0.models.ItemStateUndefinedType(other)) } } (js \ "type").validate[String] match { case e: play.api.libs.json.JsError => e case s: play.api.libs.json.JsSuccess[String] => readDiscriminator(s.value) } } def jsObjectItemState(obj: io.github.mkows.state.example.v0.models.ItemState): play.api.libs.json.JsObject = { obj match { case x: io.github.mkows.state.example.v0.models.ItemStateProgress => io.github.mkows.state.example.v0.models.json.jsObjectItemStateProgress(x) case x: io.github.mkows.state.example.v0.models.ItemStateFailedCause => io.github.mkows.state.example.v0.models.json.jsObjectItemStateFailedCause(x) case other => { sys.error(s"The type[${other.getClass.getName}] has no JSON writer") } } } implicit def jsonWritesStateExampleItemState: play.api.libs.json.Writes[ItemState] = { (obj: io.github.mkows.state.example.v0.models.ItemState) => { io.github.mkows.state.example.v0.models.json.jsObjectItemState(obj) } } }