/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1 * User agent: apibuilder app.apibuilder.io/edsancha/medallia-api/0.0.1/play_2_6 */ package com.edsancha.medallia.api.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 com.edsancha.medallia.api.v0.models.json._ import com.edsancha.survey.models.v0.models.json._ implicit val jsonReadsMedalliaApiCompareString : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.CompareString] = new play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.CompareString] { def reads( js: play.api.libs.json.JsValue ): play.api.libs.json.JsResult[com.edsancha.medallia.api.v0.models.CompareString] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.CompareString(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.CompareString(v)) case _: play.api.libs.json.JsError => (js \ "compareString").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.CompareString(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesMedalliaApiCompareString(obj: com.edsancha.medallia.api.v0.models.CompareString) = { play.api.libs.json.JsString(obj.toString) } def jsObjectCompareString(obj: com.edsancha.medallia.api.v0.models.CompareString) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesMedalliaApiCompareString: play.api.libs.json.Writes[CompareString] = { (obj: com.edsancha.medallia.api.v0.models.CompareString) => { com.edsancha.medallia.api.v0.models.json.jsonWritesMedalliaApiCompareString(obj) } } implicit val jsonReadsMedalliaApiFormType: play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FormType] = new play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FormType] { def reads( js: play.api.libs.json.JsValue ): play.api.libs.json.JsResult[com.edsancha.medallia.api.v0.models.FormType] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.FormType(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.FormType(v)) case _: play.api.libs.json.JsError => (js \ "formType").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.FormType(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesMedalliaApiFormType(obj: com.edsancha.medallia.api.v0.models.FormType) = { play.api.libs.json.JsString(obj.toString) } def jsObjectFormType(obj: com.edsancha.medallia.api.v0.models.FormType) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesMedalliaApiFormType: play.api.libs.json.Writes[FormType] = { (obj: com.edsancha.medallia.api.v0.models.FormType) => { com.edsancha.medallia.api.v0.models.json.jsonWritesMedalliaApiFormType(obj) } } implicit val jsonReadsMedalliaApiRatingViewType : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.RatingViewType] = new play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.RatingViewType] { def reads( js: play.api.libs.json.JsValue ): play.api.libs.json.JsResult[com.edsancha.medallia.api.v0.models.RatingViewType] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.RatingViewType(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.RatingViewType(v)) case _: play.api.libs.json.JsError => (js \ "ratingViewType").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.RatingViewType(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesMedalliaApiRatingViewType(obj: com.edsancha.medallia.api.v0.models.RatingViewType) = { play.api.libs.json.JsString(obj.toString) } def jsObjectRatingViewType(obj: com.edsancha.medallia.api.v0.models.RatingViewType) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesMedalliaApiRatingViewType: play.api.libs.json.Writes[RatingViewType] = { (obj: com.edsancha.medallia.api.v0.models.RatingViewType) => { com.edsancha.medallia.api.v0.models.json.jsonWritesMedalliaApiRatingViewType(obj) } } implicit def jsonReadsMedalliaApiAccessTokenWrapper : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.AccessTokenWrapper] = { (__ \ "accessToken").read[String].map { x => AccessTokenWrapper(accessToken = x) } } def jsObjectAccessTokenWrapper( obj: com.edsancha.medallia.api.v0.models.AccessTokenWrapper ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "accessToken" -> play.api.libs.json.JsString(obj.accessToken) ) } implicit def jsonWritesMedalliaApiAccessTokenWrapper: play.api.libs.json.Writes[AccessTokenWrapper] = { (obj: com.edsancha.medallia.api.v0.models.AccessTokenWrapper) => { com.edsancha.medallia.api.v0.models.json.jsObjectAccessTokenWrapper(obj) } } implicit def jsonReadsMedalliaApiComponentCheckbox : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentCheckbox] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] label <- (__ \ "label").read[String] options <- (__ \ "options").read[Seq[String]] description <- (__ \ "description").readNullable[String] } yield ComponentCheckbox(index, id, uniqueName, required, label, options, description) } def jsObjectComponentCheckbox( obj: com.edsancha.medallia.api.v0.models.ComponentCheckbox ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "label" -> play.api.libs.json.JsString(obj.label), "options" -> play.api.libs.json.Json.toJson(obj.options) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "checkbox") } implicit def jsonWritesMedalliaApiComponentCheckbox: play.api.libs.json.Writes[ComponentCheckbox] = { (obj: com.edsancha.medallia.api.v0.models.ComponentCheckbox) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentCheckbox(obj) } } implicit def jsonReadsMedalliaApiComponentDropdown : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentDropdown] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] placeholder <- (__ \ "placeholder").read[String] label <- (__ \ "label").read[String] options <- (__ \ "options").read[Seq[String]] description <- (__ \ "description").readNullable[String] } yield ComponentDropdown(index, id, uniqueName, required, placeholder, label, options, description) } def jsObjectComponentDropdown( obj: com.edsancha.medallia.api.v0.models.ComponentDropdown ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "placeholder" -> play.api.libs.json.JsString(obj.placeholder), "label" -> play.api.libs.json.JsString(obj.label), "options" -> play.api.libs.json.Json.toJson(obj.options) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "select") } implicit def jsonWritesMedalliaApiComponentDropdown: play.api.libs.json.Writes[ComponentDropdown] = { (obj: com.edsancha.medallia.api.v0.models.ComponentDropdown) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentDropdown(obj) } } implicit def jsonReadsMedalliaApiComponentGrading : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentGrading] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] label <- (__ \ "label").read[String] ratingViewType <- (__ \ "ratingViewType").read[com.edsancha.medallia.api.v0.models.RatingViewType] description <- (__ \ "description").readNullable[String] } yield ComponentGrading(index, id, uniqueName, required, label, ratingViewType, description) } def jsObjectComponentGrading( obj: com.edsancha.medallia.api.v0.models.ComponentGrading ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "label" -> play.api.libs.json.JsString(obj.label), "ratingViewType" -> play.api.libs.json.JsString(obj.ratingViewType.toString) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "grading") } implicit def jsonWritesMedalliaApiComponentGrading: play.api.libs.json.Writes[ComponentGrading] = { (obj: com.edsancha.medallia.api.v0.models.ComponentGrading) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentGrading(obj) } } implicit def jsonReadsMedalliaApiComponentGrading0to10 : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentGrading0to10] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] label <- (__ \ "label").read[String] ratingViewType <- (__ \ "ratingViewType").read[com.edsancha.medallia.api.v0.models.RatingViewType] description <- (__ \ "description").readNullable[String] } yield ComponentGrading0to10(index, id, uniqueName, required, label, ratingViewType, description) } def jsObjectComponentGrading0to10( obj: com.edsancha.medallia.api.v0.models.ComponentGrading0to10 ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "label" -> play.api.libs.json.JsString(obj.label), "ratingViewType" -> play.api.libs.json.JsString(obj.ratingViewType.toString) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "grading0to10") } implicit def jsonWritesMedalliaApiComponentGrading0to10: play.api.libs.json.Writes[ComponentGrading0to10] = { (obj: com.edsancha.medallia.api.v0.models.ComponentGrading0to10) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentGrading0to10(obj) } } implicit def jsonReadsMedalliaApiComponentGrading1to10 : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentGrading1to10] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] label <- (__ \ "label").read[String] ratingViewType <- (__ \ "ratingViewType").read[com.edsancha.medallia.api.v0.models.RatingViewType] description <- (__ \ "description").readNullable[String] } yield ComponentGrading1to10(index, id, uniqueName, required, label, ratingViewType, description) } def jsObjectComponentGrading1to10( obj: com.edsancha.medallia.api.v0.models.ComponentGrading1to10 ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "label" -> play.api.libs.json.JsString(obj.label), "ratingViewType" -> play.api.libs.json.JsString(obj.ratingViewType.toString) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "grading1to10") } implicit def jsonWritesMedalliaApiComponentGrading1to10: play.api.libs.json.Writes[ComponentGrading1to10] = { (obj: com.edsancha.medallia.api.v0.models.ComponentGrading1to10) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentGrading1to10(obj) } } implicit def jsonReadsMedalliaApiComponentImage : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentImage] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] imageObject <- (__ \ "imageObject").readNullable[com.edsancha.medallia.api.v0.models.Image] uploadedResource <- (__ \ "uploadedResource").readNullable[com.edsancha.medallia.api.v0.models.Image] } yield ComponentImage(index, id, uniqueName, imageObject, uploadedResource) } def jsObjectComponentImage(obj: com.edsancha.medallia.api.v0.models.ComponentImage): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName) ) ++ (obj.imageObject match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("imageObject" -> com.edsancha.medallia.api.v0.models.json.jsObjectImage(x)) }) ++ (obj.uploadedResource match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("uploadedResource" -> com.edsancha.medallia.api.v0.models.json.jsObjectImage(x)) }) ++ play.api.libs.json.Json.obj("component" -> "image") } implicit def jsonWritesMedalliaApiComponentImage: play.api.libs.json.Writes[ComponentImage] = { (obj: com.edsancha.medallia.api.v0.models.ComponentImage) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentImage(obj) } } implicit def jsonReadsMedalliaApiComponentLabel : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentLabel] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] labelContent <- (__ \ "labelContent").readNullable[String] numOfLines <- (__ \ "num_of_lines").read[Int] } yield ComponentLabel(index, id, uniqueName, labelContent, numOfLines) } def jsObjectComponentLabel(obj: com.edsancha.medallia.api.v0.models.ComponentLabel): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "num_of_lines" -> play.api.libs.json.JsNumber(obj.numOfLines) ) ++ (obj.labelContent match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("labelContent" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "label") } implicit def jsonWritesMedalliaApiComponentLabel: play.api.libs.json.Writes[ComponentLabel] = { (obj: com.edsancha.medallia.api.v0.models.ComponentLabel) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentLabel(obj) } } implicit def jsonReadsMedalliaApiComponentNps : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentNps] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] label <- (__ \ "label").read[String] description <- (__ \ "description").readNullable[String] ratingViewType <- (__ \ "ratingViewType").read[com.edsancha.medallia.api.v0.models.RatingViewType] } yield ComponentNps(index, id, uniqueName, required, label, description, ratingViewType) } def jsObjectComponentNps(obj: com.edsancha.medallia.api.v0.models.ComponentNps): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "label" -> play.api.libs.json.JsString(obj.label), "ratingViewType" -> play.api.libs.json.JsString(obj.ratingViewType.toString) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "nps") } implicit def jsonWritesMedalliaApiComponentNps: play.api.libs.json.Writes[ComponentNps] = { (obj: com.edsancha.medallia.api.v0.models.ComponentNps) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentNps(obj) } } implicit def jsonReadsMedalliaApiComponentRadioSelector : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentRadioSelector] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] label <- (__ \ "label").read[String] options <- (__ \ "options").read[Seq[String]] description <- (__ \ "description").readNullable[String] } yield ComponentRadioSelector(index, id, uniqueName, required, label, options, description) } def jsObjectComponentRadioSelector( obj: com.edsancha.medallia.api.v0.models.ComponentRadioSelector ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "label" -> play.api.libs.json.JsString(obj.label), "options" -> play.api.libs.json.Json.toJson(obj.options) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "radio") } implicit def jsonWritesMedalliaApiComponentRadioSelector: play.api.libs.json.Writes[ComponentRadioSelector] = { (obj: com.edsancha.medallia.api.v0.models.ComponentRadioSelector) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentRadioSelector(obj) } } implicit def jsonReadsMedalliaApiComponentTextArea : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentTextArea] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] placeholder <- (__ \ "placeholder").read[String] label <- (__ \ "label").read[String] numOfLines <- (__ \ "num_of_lines").read[Int] description <- (__ \ "description").readNullable[String] } yield ComponentTextArea(index, id, uniqueName, required, placeholder, label, numOfLines, description) } def jsObjectComponentTextArea( obj: com.edsancha.medallia.api.v0.models.ComponentTextArea ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "placeholder" -> play.api.libs.json.JsString(obj.placeholder), "label" -> play.api.libs.json.JsString(obj.label), "num_of_lines" -> play.api.libs.json.JsNumber(obj.numOfLines) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "textArea") } implicit def jsonWritesMedalliaApiComponentTextArea: play.api.libs.json.Writes[ComponentTextArea] = { (obj: com.edsancha.medallia.api.v0.models.ComponentTextArea) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentTextArea(obj) } } implicit def jsonReadsMedalliaApiComponentTextInput : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentTextInput] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] required <- (__ \ "required").read[Boolean] placeholder <- (__ \ "placeholder").read[String] label <- (__ \ "label").read[String] maxChars <- (__ \ "max_chars").read[Int] description <- (__ \ "description").readNullable[String] } yield ComponentTextInput(index, id, uniqueName, required, placeholder, label, maxChars, description) } def jsObjectComponentTextInput( obj: com.edsancha.medallia.api.v0.models.ComponentTextInput ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "required" -> play.api.libs.json.JsBoolean(obj.required), "placeholder" -> play.api.libs.json.JsString(obj.placeholder), "label" -> play.api.libs.json.JsString(obj.label), "max_chars" -> play.api.libs.json.JsNumber(obj.maxChars) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ play.api.libs.json.Json.obj("component" -> "textInput") } implicit def jsonWritesMedalliaApiComponentTextInput: play.api.libs.json.Writes[ComponentTextInput] = { (obj: com.edsancha.medallia.api.v0.models.ComponentTextInput) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentTextInput(obj) } } implicit def jsonReadsMedalliaApiConfiguration : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.Configuration] = { for { propertyId <- (__ \ "propertyId").read[Int] feedbackSubmitUrl <- (__ \ "feedbackSubmitUrl").read[String] forms <- (__ \ "forms").read[Seq[com.edsancha.medallia.api.v0.models.Form]] } yield Configuration(propertyId, feedbackSubmitUrl, forms) } def jsObjectConfiguration(obj: com.edsancha.medallia.api.v0.models.Configuration): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "propertyId" -> play.api.libs.json.JsNumber(obj.propertyId), "feedbackSubmitUrl" -> play.api.libs.json.JsString(obj.feedbackSubmitUrl), "forms" -> play.api.libs.json.Json.toJson(obj.forms) ) } implicit def jsonWritesMedalliaApiConfiguration: play.api.libs.json.Writes[Configuration] = { (obj: com.edsancha.medallia.api.v0.models.Configuration) => { com.edsancha.medallia.api.v0.models.json.jsObjectConfiguration(obj) } } implicit def jsonReadsMedalliaApiDynamicData : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.DynamicData] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] required <- (__ \ "required").read[Boolean] component <- (__ \ "component").read[String] uniqueName <- (__ \ "unique_name").read[String] placeholder <- (__ \ "placeholder").read[String] label <- (__ \ "label").read[String] description <- (__ \ "description").readNullable[String] options <- (__ \ "options").readNullable[Seq[String]] imageObject <- (__ \ "imageObject").readNullable[com.edsancha.medallia.api.v0.models.Image] } yield DynamicData( index, id, required, component, uniqueName, placeholder, label, description, options, imageObject ) } def jsObjectDynamicData(obj: com.edsancha.medallia.api.v0.models.DynamicData): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "required" -> play.api.libs.json.JsBoolean(obj.required), "component" -> play.api.libs.json.JsString(obj.component), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "placeholder" -> play.api.libs.json.JsString(obj.placeholder), "label" -> play.api.libs.json.JsString(obj.label) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) ++ (obj.options match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("options" -> play.api.libs.json.Json.toJson(x)) }) ++ (obj.imageObject match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("imageObject" -> com.edsancha.medallia.api.v0.models.json.jsObjectImage(x)) }) } implicit def jsonWritesMedalliaApiDynamicData: play.api.libs.json.Writes[DynamicData] = { (obj: com.edsancha.medallia.api.v0.models.DynamicData) => { com.edsancha.medallia.api.v0.models.json.jsObjectDynamicData(obj) } } implicit def jsonReadsMedalliaApiFeedback: play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.Feedback] = { for { formId <- (__ \ "formId").read[Int] dynamicData <- (__ \ "dynamicData").read[com.edsancha.medallia.api.v0.models.FeedbackData] } yield Feedback(formId, dynamicData) } def jsObjectFeedback(obj: com.edsancha.medallia.api.v0.models.Feedback): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "formId" -> play.api.libs.json.JsNumber(obj.formId), "dynamicData" -> com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackData(obj.dynamicData) ) } implicit def jsonWritesMedalliaApiFeedback: play.api.libs.json.Writes[Feedback] = { (obj: com.edsancha.medallia.api.v0.models.Feedback) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedback(obj) } } implicit def jsonReadsMedalliaApiFeedbackCheckbox : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackCheckbox] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[Seq[Int]] `type` <- (__ \ "type").read[String] } yield FeedbackCheckbox(index, id, uniqueName, value, `type`) } def jsObjectFeedbackCheckbox( obj: com.edsancha.medallia.api.v0.models.FeedbackCheckbox ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.Json.toJson(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "checkbox") } implicit def jsonWritesMedalliaApiFeedbackCheckbox: play.api.libs.json.Writes[FeedbackCheckbox] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackCheckbox) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackCheckbox(obj) } } implicit def jsonReadsMedalliaApiFeedbackData : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackData] = { for { customParams <- (__ \ "customParams").readNullable[_root_.play.api.libs.json.JsValue] pages <- (__ \ "pages").read[Seq[com.edsancha.medallia.api.v0.models.FeedbackPage]] } yield FeedbackData(customParams, pages) } def jsObjectFeedbackData(obj: com.edsancha.medallia.api.v0.models.FeedbackData): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "pages" -> play.api.libs.json.Json.toJson(obj.pages) ) ++ (obj.customParams match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("customParams" -> x) }) } implicit def jsonWritesMedalliaApiFeedbackData: play.api.libs.json.Writes[FeedbackData] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackData) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackData(obj) } } implicit def jsonReadsMedalliaApiFeedbackDropdown : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackDropdown] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[Int] `type` <- (__ \ "type").read[String] } yield FeedbackDropdown(index, id, uniqueName, value, `type`) } def jsObjectFeedbackDropdown( obj: com.edsancha.medallia.api.v0.models.FeedbackDropdown ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.JsNumber(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "select") } implicit def jsonWritesMedalliaApiFeedbackDropdown: play.api.libs.json.Writes[FeedbackDropdown] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackDropdown) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackDropdown(obj) } } implicit def jsonReadsMedalliaApiFeedbackGrading : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackGrading] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[Int] `type` <- (__ \ "type").read[String] } yield FeedbackGrading(index, id, uniqueName, value, `type`) } def jsObjectFeedbackGrading(obj: com.edsancha.medallia.api.v0.models.FeedbackGrading): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.JsNumber(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "grading") } implicit def jsonWritesMedalliaApiFeedbackGrading: play.api.libs.json.Writes[FeedbackGrading] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackGrading) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackGrading(obj) } } implicit def jsonReadsMedalliaApiFeedbackGrading0to10 : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackGrading0to10] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[Int] `type` <- (__ \ "type").read[String] } yield FeedbackGrading0to10(index, id, uniqueName, value, `type`) } def jsObjectFeedbackGrading0to10( obj: com.edsancha.medallia.api.v0.models.FeedbackGrading0to10 ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.JsNumber(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "grading0to10") } implicit def jsonWritesMedalliaApiFeedbackGrading0to10: play.api.libs.json.Writes[FeedbackGrading0to10] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackGrading0to10) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackGrading0to10(obj) } } implicit def jsonReadsMedalliaApiFeedbackGrading1to10 : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackGrading1to10] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[Int] `type` <- (__ \ "type").read[String] } yield FeedbackGrading1to10(index, id, uniqueName, value, `type`) } def jsObjectFeedbackGrading1to10( obj: com.edsancha.medallia.api.v0.models.FeedbackGrading1to10 ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.JsNumber(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "grading1to10") } implicit def jsonWritesMedalliaApiFeedbackGrading1to10: play.api.libs.json.Writes[FeedbackGrading1to10] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackGrading1to10) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackGrading1to10(obj) } } implicit def jsonReadsMedalliaApiFeedbackNps : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackNps] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[Int] `type` <- (__ \ "type").read[String] } yield FeedbackNps(index, id, uniqueName, value, `type`) } def jsObjectFeedbackNps(obj: com.edsancha.medallia.api.v0.models.FeedbackNps): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.JsNumber(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "nps") } implicit def jsonWritesMedalliaApiFeedbackNps: play.api.libs.json.Writes[FeedbackNps] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackNps) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackNps(obj) } } implicit def jsonReadsMedalliaApiFeedbackPage : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackPage] = { (__ \ "components").read[Seq[com.edsancha.medallia.api.v0.models.FeedbackUnion]].map { x => FeedbackPage(components = x) } } def jsObjectFeedbackPage(obj: com.edsancha.medallia.api.v0.models.FeedbackPage): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "components" -> play.api.libs.json.Json.toJson(obj.components) ) } implicit def jsonWritesMedalliaApiFeedbackPage: play.api.libs.json.Writes[FeedbackPage] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackPage) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackPage(obj) } } implicit def jsonReadsMedalliaApiFeedbackRadioSelector : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackRadioSelector] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[Int] `type` <- (__ \ "type").read[String] } yield FeedbackRadioSelector(index, id, uniqueName, value, `type`) } def jsObjectFeedbackRadioSelector( obj: com.edsancha.medallia.api.v0.models.FeedbackRadioSelector ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.JsNumber(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "radio") } implicit def jsonWritesMedalliaApiFeedbackRadioSelector: play.api.libs.json.Writes[FeedbackRadioSelector] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackRadioSelector) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackRadioSelector(obj) } } implicit def jsonReadsMedalliaApiFeedbackTextArea : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackTextArea] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[String] `type` <- (__ \ "type").read[String] } yield FeedbackTextArea(index, id, uniqueName, value, `type`) } def jsObjectFeedbackTextArea( obj: com.edsancha.medallia.api.v0.models.FeedbackTextArea ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.JsString(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "textArea") } implicit def jsonWritesMedalliaApiFeedbackTextArea: play.api.libs.json.Writes[FeedbackTextArea] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackTextArea) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackTextArea(obj) } } implicit def jsonReadsMedalliaApiFeedbackTextInput : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackTextInput] = { for { index <- (__ \ "index").read[Int] id <- (__ \ "id").read[Int] uniqueName <- (__ \ "unique_name").read[String] value <- (__ \ "value").read[String] `type` <- (__ \ "type").read[String] } yield FeedbackTextInput(index, id, uniqueName, value, `type`) } def jsObjectFeedbackTextInput( obj: com.edsancha.medallia.api.v0.models.FeedbackTextInput ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "index" -> play.api.libs.json.JsNumber(obj.index), "id" -> play.api.libs.json.JsNumber(obj.id), "unique_name" -> play.api.libs.json.JsString(obj.uniqueName), "value" -> play.api.libs.json.JsString(obj.value), "type" -> play.api.libs.json.JsString(obj.`type`) ) ++ play.api.libs.json.Json.obj("component" -> "textInput") } implicit def jsonWritesMedalliaApiFeedbackTextInput: play.api.libs.json.Writes[FeedbackTextInput] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackTextInput) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackTextInput(obj) } } implicit def jsonReadsMedalliaApiForm: play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.Form] = { for { formId <- (__ \ "formId").read[Int] name <- (__ \ "name").read[String] title <- (__ \ "title").read[String] formType <- (__ \ "formType").read[com.edsancha.medallia.api.v0.models.FormType] inviteData <- (__ \ "inviteData").readNullable[com.edsancha.medallia.api.v0.models.InviteData] triggerData <- (__ \ "triggerData").readNullable[com.edsancha.medallia.api.v0.models.TriggerData] formJson <- (__ \ "formJson").read[com.edsancha.medallia.api.v0.models.FormJson] } yield Form(formId, name, title, formType, inviteData, triggerData, formJson) } def jsObjectForm(obj: com.edsancha.medallia.api.v0.models.Form): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "formId" -> play.api.libs.json.JsNumber(obj.formId), "name" -> play.api.libs.json.JsString(obj.name), "title" -> play.api.libs.json.JsString(obj.title), "formType" -> play.api.libs.json.JsString(obj.formType.toString), "formJson" -> com.edsancha.medallia.api.v0.models.json.jsObjectFormJson(obj.formJson) ) ++ (obj.inviteData match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("inviteData" -> com.edsancha.medallia.api.v0.models.json.jsObjectInviteData(x)) }) ++ (obj.triggerData match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("triggerData" -> com.edsancha.medallia.api.v0.models.json.jsObjectTriggerData(x)) }) } implicit def jsonWritesMedalliaApiForm: play.api.libs.json.Writes[Form] = { (obj: com.edsancha.medallia.api.v0.models.Form) => { com.edsancha.medallia.api.v0.models.json.jsObjectForm(obj) } } implicit def jsonReadsMedalliaApiFormJson: play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FormJson] = { (__ \ "pages").read[Seq[com.edsancha.medallia.api.v0.models.Page]].map { x => FormJson(pages = x) } } def jsObjectFormJson(obj: com.edsancha.medallia.api.v0.models.FormJson): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "pages" -> play.api.libs.json.Json.toJson(obj.pages) ) } implicit def jsonWritesMedalliaApiFormJson: play.api.libs.json.Writes[FormJson] = { (obj: com.edsancha.medallia.api.v0.models.FormJson) => { com.edsancha.medallia.api.v0.models.json.jsObjectFormJson(obj) } } implicit def jsonReadsMedalliaApiImage: play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.Image] = { for { name <- (__ \ "name").read[String] url <- (__ \ "url").read[String] } yield Image(name, url) } def jsObjectImage(obj: com.edsancha.medallia.api.v0.models.Image): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name), "url" -> play.api.libs.json.JsString(obj.url) ) } implicit def jsonWritesMedalliaApiImage: play.api.libs.json.Writes[Image] = { (obj: com.edsancha.medallia.api.v0.models.Image) => { com.edsancha.medallia.api.v0.models.json.jsObjectImage(obj) } } implicit def jsonReadsMedalliaApiInviteData : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.InviteData] = { for { invitationHeadline <- (__ \ "invitationHeadline").read[String] invitationText <- (__ \ "invitationText").read[String] provideButtonText <- (__ \ "provideButtonText").read[String] declineButtonText <- (__ \ "declineButtonText").read[String] laterButtonText <- (__ \ "laterButtonText").read[String] } yield InviteData(invitationHeadline, invitationText, provideButtonText, declineButtonText, laterButtonText) } def jsObjectInviteData(obj: com.edsancha.medallia.api.v0.models.InviteData): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "invitationHeadline" -> play.api.libs.json.JsString(obj.invitationHeadline), "invitationText" -> play.api.libs.json.JsString(obj.invitationText), "provideButtonText" -> play.api.libs.json.JsString(obj.provideButtonText), "declineButtonText" -> play.api.libs.json.JsString(obj.declineButtonText), "laterButtonText" -> play.api.libs.json.JsString(obj.laterButtonText) ) } implicit def jsonWritesMedalliaApiInviteData: play.api.libs.json.Writes[InviteData] = { (obj: com.edsancha.medallia.api.v0.models.InviteData) => { com.edsancha.medallia.api.v0.models.json.jsObjectInviteData(obj) } } implicit def jsonReadsMedalliaApiNumberOfAppSession : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.NumberOfAppSession] = { for { number <- (__ \ "number").read[String] compareString <- (__ \ "compareString").read[com.edsancha.medallia.api.v0.models.CompareString] } yield NumberOfAppSession(number, compareString) } def jsObjectNumberOfAppSession( obj: com.edsancha.medallia.api.v0.models.NumberOfAppSession ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "number" -> play.api.libs.json.JsString(obj.number), "compareString" -> play.api.libs.json.JsString(obj.compareString.toString) ) } implicit def jsonWritesMedalliaApiNumberOfAppSession: play.api.libs.json.Writes[NumberOfAppSession] = { (obj: com.edsancha.medallia.api.v0.models.NumberOfAppSession) => { com.edsancha.medallia.api.v0.models.json.jsObjectNumberOfAppSession(obj) } } implicit def jsonReadsMedalliaApiNumberOfDays : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.NumberOfDays] = { (__ \ "days").read[String].map { x => NumberOfDays(days = x) } } def jsObjectNumberOfDays(obj: com.edsancha.medallia.api.v0.models.NumberOfDays): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "days" -> play.api.libs.json.JsString(obj.days) ) } implicit def jsonWritesMedalliaApiNumberOfDays: play.api.libs.json.Writes[NumberOfDays] = { (obj: com.edsancha.medallia.api.v0.models.NumberOfDays) => { com.edsancha.medallia.api.v0.models.json.jsObjectNumberOfDays(obj) } } implicit def jsonReadsMedalliaApiPage: play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.Page] = { for { name <- (__ \ "name").read[String] index <- (__ \ "index").read[Int] dynamicData <- (__ \ "dynamicData").read[Seq[com.edsancha.medallia.api.v0.models.ComponentUnion]] } yield Page(name, index, dynamicData) } def jsObjectPage(obj: com.edsancha.medallia.api.v0.models.Page): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name), "index" -> play.api.libs.json.JsNumber(obj.index), "dynamicData" -> play.api.libs.json.Json.toJson(obj.dynamicData) ) } implicit def jsonWritesMedalliaApiPage: play.api.libs.json.Writes[Page] = { (obj: com.edsancha.medallia.api.v0.models.Page) => { com.edsancha.medallia.api.v0.models.json.jsObjectPage(obj) } } implicit def jsonReadsMedalliaApiPercentageOfSessions : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.PercentageOfSessions] = { (__ \ "prec").read[String].map { x => PercentageOfSessions(prec = x) } } def jsObjectPercentageOfSessions( obj: com.edsancha.medallia.api.v0.models.PercentageOfSessions ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "prec" -> play.api.libs.json.JsString(obj.prec) ) } implicit def jsonWritesMedalliaApiPercentageOfSessions: play.api.libs.json.Writes[PercentageOfSessions] = { (obj: com.edsancha.medallia.api.v0.models.PercentageOfSessions) => { com.edsancha.medallia.api.v0.models.json.jsObjectPercentageOfSessions(obj) } } implicit def jsonReadsMedalliaApiTimeInForeground : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.TimeInForeground] = { for { time <- (__ \ "time").read[String] compareString <- (__ \ "compareString").read[com.edsancha.medallia.api.v0.models.CompareString] } yield TimeInForeground(time, compareString) } def jsObjectTimeInForeground( obj: com.edsancha.medallia.api.v0.models.TimeInForeground ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "time" -> play.api.libs.json.JsString(obj.time), "compareString" -> play.api.libs.json.JsString(obj.compareString.toString) ) } implicit def jsonWritesMedalliaApiTimeInForeground: play.api.libs.json.Writes[TimeInForeground] = { (obj: com.edsancha.medallia.api.v0.models.TimeInForeground) => { com.edsancha.medallia.api.v0.models.json.jsObjectTimeInForeground(obj) } } implicit def jsonReadsMedalliaApiTriggerData : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.TriggerData] = { for { numberOfAppSession <- (__ \ "numberOfAppSession") .readNullable[com.edsancha.medallia.api.v0.models.NumberOfAppSession] timeInForeground <- (__ \ "timeInForeground").readNullable[com.edsancha.medallia.api.v0.models.TimeInForeground] mobileappVersion <- (__ \ "mobileappVersion").readNullable[Seq[String]] submitted <- (__ \ "submitted").readNullable[com.edsancha.medallia.api.v0.models.NumberOfDays] declined <- (__ \ "declined").readNullable[com.edsancha.medallia.api.v0.models.NumberOfDays] mobileosVersion <- (__ \ "mobileosVersion").readNullable[Seq[String]] percentageOfSessions <- (__ \ "percentageOfSessions") .readNullable[com.edsancha.medallia.api.v0.models.PercentageOfSessions] genericRule <- (__ \ "genericRule").readNullable[String] } yield TriggerData( numberOfAppSession, timeInForeground, mobileappVersion, submitted, declined, mobileosVersion, percentageOfSessions, genericRule ) } def jsObjectTriggerData(obj: com.edsancha.medallia.api.v0.models.TriggerData): play.api.libs.json.JsObject = { (obj.numberOfAppSession match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("numberOfAppSession" -> com.edsancha.medallia.api.v0.models.json.jsObjectNumberOfAppSession(x)) }) ++ (obj.timeInForeground match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("timeInForeground" -> com.edsancha.medallia.api.v0.models.json.jsObjectTimeInForeground(x)) }) ++ (obj.mobileappVersion match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("mobileappVersion" -> play.api.libs.json.Json.toJson(x)) }) ++ (obj.submitted match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("submitted" -> com.edsancha.medallia.api.v0.models.json.jsObjectNumberOfDays(x)) }) ++ (obj.declined match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("declined" -> com.edsancha.medallia.api.v0.models.json.jsObjectNumberOfDays(x)) }) ++ (obj.mobileosVersion match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("mobileosVersion" -> play.api.libs.json.Json.toJson(x)) }) ++ (obj.percentageOfSessions match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("percentageOfSessions" -> com.edsancha.medallia.api.v0.models.json.jsObjectPercentageOfSessions(x)) }) ++ (obj.genericRule match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("genericRule" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesMedalliaApiTriggerData: play.api.libs.json.Writes[TriggerData] = { (obj: com.edsancha.medallia.api.v0.models.TriggerData) => { com.edsancha.medallia.api.v0.models.json.jsObjectTriggerData(obj) } } implicit def jsonReadsMedalliaApiComponentUnion : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.ComponentUnion] = (js: play.api.libs.json.JsValue) => { def readDiscriminator(discriminator: String) = { discriminator match { case "label" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentLabel.reads(js) case "image" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentImage.reads(js) case "nps" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentNps.reads(js) case "textArea" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentTextArea.reads(js) case "textInput" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentTextInput.reads(js) case "radio" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentRadioSelector.reads(js) case "checkbox" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentCheckbox.reads(js) case "select" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentDropdown.reads(js) case "grading" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentGrading.reads(js) case "grading0to10" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentGrading0to10.reads(js) case "grading1to10" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiComponentGrading1to10.reads(js) case other => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.ComponentUnionUndefinedType(other)) } } (js \ "component").validate[String] match { case e: play.api.libs.json.JsError => e case s: play.api.libs.json.JsSuccess[String] => readDiscriminator(s.value) } } def jsObjectComponentUnion(obj: com.edsancha.medallia.api.v0.models.ComponentUnion): play.api.libs.json.JsObject = { obj match { case x: com.edsancha.medallia.api.v0.models.ComponentLabel => com.edsancha.medallia.api.v0.models.json.jsObjectComponentLabel(x) case x: com.edsancha.medallia.api.v0.models.ComponentImage => com.edsancha.medallia.api.v0.models.json.jsObjectComponentImage(x) case x: com.edsancha.medallia.api.v0.models.ComponentNps => com.edsancha.medallia.api.v0.models.json.jsObjectComponentNps(x) case x: com.edsancha.medallia.api.v0.models.ComponentTextArea => com.edsancha.medallia.api.v0.models.json.jsObjectComponentTextArea(x) case x: com.edsancha.medallia.api.v0.models.ComponentTextInput => com.edsancha.medallia.api.v0.models.json.jsObjectComponentTextInput(x) case x: com.edsancha.medallia.api.v0.models.ComponentRadioSelector => com.edsancha.medallia.api.v0.models.json.jsObjectComponentRadioSelector(x) case x: com.edsancha.medallia.api.v0.models.ComponentCheckbox => com.edsancha.medallia.api.v0.models.json.jsObjectComponentCheckbox(x) case x: com.edsancha.medallia.api.v0.models.ComponentDropdown => com.edsancha.medallia.api.v0.models.json.jsObjectComponentDropdown(x) case x: com.edsancha.medallia.api.v0.models.ComponentGrading => com.edsancha.medallia.api.v0.models.json.jsObjectComponentGrading(x) case x: com.edsancha.medallia.api.v0.models.ComponentGrading0to10 => com.edsancha.medallia.api.v0.models.json.jsObjectComponentGrading0to10(x) case x: com.edsancha.medallia.api.v0.models.ComponentGrading1to10 => com.edsancha.medallia.api.v0.models.json.jsObjectComponentGrading1to10(x) case other => { sys.error(s"The type[${other.getClass.getName}] has no JSON writer") } } } implicit def jsonWritesMedalliaApiComponentUnion: play.api.libs.json.Writes[ComponentUnion] = { (obj: com.edsancha.medallia.api.v0.models.ComponentUnion) => { com.edsancha.medallia.api.v0.models.json.jsObjectComponentUnion(obj) } } implicit def jsonReadsMedalliaApiFeedbackUnion : play.api.libs.json.Reads[com.edsancha.medallia.api.v0.models.FeedbackUnion] = (js: play.api.libs.json.JsValue) => { def readDiscriminator(discriminator: String) = { discriminator match { case "nps" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackNps.reads(js) case "textArea" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackTextArea.reads(js) case "textInput" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackTextInput.reads(js) case "radio" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackRadioSelector.reads(js) case "checkbox" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackCheckbox.reads(js) case "select" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackDropdown.reads(js) case "grading" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackGrading.reads(js) case "grading0to10" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackGrading0to10.reads(js) case "grading1to10" => com.edsancha.medallia.api.v0.models.json.jsonReadsMedalliaApiFeedbackGrading1to10.reads(js) case other => play.api.libs.json.JsSuccess(com.edsancha.medallia.api.v0.models.FeedbackUnionUndefinedType(other)) } } (js \ "component").validate[String] match { case e: play.api.libs.json.JsError => e case s: play.api.libs.json.JsSuccess[String] => readDiscriminator(s.value) } } def jsObjectFeedbackUnion(obj: com.edsancha.medallia.api.v0.models.FeedbackUnion): play.api.libs.json.JsObject = { obj match { case x: com.edsancha.medallia.api.v0.models.FeedbackNps => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackNps(x) case x: com.edsancha.medallia.api.v0.models.FeedbackTextArea => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackTextArea(x) case x: com.edsancha.medallia.api.v0.models.FeedbackTextInput => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackTextInput(x) case x: com.edsancha.medallia.api.v0.models.FeedbackRadioSelector => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackRadioSelector(x) case x: com.edsancha.medallia.api.v0.models.FeedbackCheckbox => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackCheckbox(x) case x: com.edsancha.medallia.api.v0.models.FeedbackDropdown => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackDropdown(x) case x: com.edsancha.medallia.api.v0.models.FeedbackGrading => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackGrading(x) case x: com.edsancha.medallia.api.v0.models.FeedbackGrading0to10 => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackGrading0to10(x) case x: com.edsancha.medallia.api.v0.models.FeedbackGrading1to10 => com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackGrading1to10(x) case other => { sys.error(s"The type[${other.getClass.getName}] has no JSON writer") } } } implicit def jsonWritesMedalliaApiFeedbackUnion: play.api.libs.json.Writes[FeedbackUnion] = { (obj: com.edsancha.medallia.api.v0.models.FeedbackUnion) => { com.edsancha.medallia.api.v0.models.json.jsObjectFeedbackUnion(obj) } } }