/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.2-dev * User agent: apibuilder app.apibuilder.io/mard/mard2p-api/0.0.2-dev/play_2_6 */ package payp.mard2p.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 io.apibuilder.common.v0.models.json._ import io.apibuilder.generator.v0.models.json._ import io.apibuilder.spec.v0.models.json._ import payp.mard2p.api.v0.models.json._ implicit val jsonReadsMard2pAPIAppSortBy: play.api.libs.json.Reads[payp.mard2p.api.v0.models.AppSortBy] = new play.api.libs.json.Reads[payp.mard2p.api.v0.models.AppSortBy] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[payp.mard2p.api.v0.models.AppSortBy] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.AppSortBy(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.AppSortBy(v)) case _: play.api.libs.json.JsError => (js \ "app_sort_by").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.AppSortBy(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesMard2pAPIAppSortBy(obj: payp.mard2p.api.v0.models.AppSortBy) = { play.api.libs.json.JsString(obj.toString) } def jsObjectAppSortBy(obj: payp.mard2p.api.v0.models.AppSortBy) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesMard2pAPIAppSortBy: play.api.libs.json.Writes[AppSortBy] = { (obj: payp.mard2p.api.v0.models.AppSortBy) => { payp.mard2p.api.v0.models.json.jsonWritesMard2pAPIAppSortBy(obj) } } implicit val jsonReadsMard2pAPIOriginalType: play.api.libs.json.Reads[payp.mard2p.api.v0.models.OriginalType] = new play.api.libs.json.Reads[payp.mard2p.api.v0.models.OriginalType] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[payp.mard2p.api.v0.models.OriginalType] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.OriginalType(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.OriginalType(v)) case _: play.api.libs.json.JsError => (js \ "original_type").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.OriginalType(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesMard2pAPIOriginalType(obj: payp.mard2p.api.v0.models.OriginalType) = { play.api.libs.json.JsString(obj.toString) } def jsObjectOriginalType(obj: payp.mard2p.api.v0.models.OriginalType) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesMard2pAPIOriginalType: play.api.libs.json.Writes[OriginalType] = { (obj: payp.mard2p.api.v0.models.OriginalType) => { payp.mard2p.api.v0.models.json.jsonWritesMard2pAPIOriginalType(obj) } } implicit val jsonReadsMard2pAPIPublication: play.api.libs.json.Reads[payp.mard2p.api.v0.models.Publication] = new play.api.libs.json.Reads[payp.mard2p.api.v0.models.Publication] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[payp.mard2p.api.v0.models.Publication] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.Publication(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.Publication(v)) case _: play.api.libs.json.JsError => (js \ "publication").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.Publication(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesMard2pAPIPublication(obj: payp.mard2p.api.v0.models.Publication) = { play.api.libs.json.JsString(obj.toString) } def jsObjectPublication(obj: payp.mard2p.api.v0.models.Publication) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesMard2pAPIPublication: play.api.libs.json.Writes[Publication] = { (obj: payp.mard2p.api.v0.models.Publication) => { payp.mard2p.api.v0.models.json.jsonWritesMard2pAPIPublication(obj) } } implicit val jsonReadsMard2pAPISortOrder: play.api.libs.json.Reads[payp.mard2p.api.v0.models.SortOrder] = new play.api.libs.json.Reads[payp.mard2p.api.v0.models.SortOrder] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[payp.mard2p.api.v0.models.SortOrder] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.SortOrder(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.SortOrder(v)) case _: play.api.libs.json.JsError => (js \ "sort_order").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.SortOrder(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesMard2pAPISortOrder(obj: payp.mard2p.api.v0.models.SortOrder) = { play.api.libs.json.JsString(obj.toString) } def jsObjectSortOrder(obj: payp.mard2p.api.v0.models.SortOrder) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesMard2pAPISortOrder: play.api.libs.json.Writes[SortOrder] = { (obj: payp.mard2p.api.v0.models.SortOrder) => { payp.mard2p.api.v0.models.json.jsonWritesMard2pAPISortOrder(obj) } } implicit val jsonReadsMard2pAPIVisibility: play.api.libs.json.Reads[payp.mard2p.api.v0.models.Visibility] = new play.api.libs.json.Reads[payp.mard2p.api.v0.models.Visibility] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[payp.mard2p.api.v0.models.Visibility] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.Visibility(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.Visibility(v)) case _: play.api.libs.json.JsError => (js \ "visibility").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(payp.mard2p.api.v0.models.Visibility(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesMard2pAPIVisibility(obj: payp.mard2p.api.v0.models.Visibility) = { play.api.libs.json.JsString(obj.toString) } def jsObjectVisibility(obj: payp.mard2p.api.v0.models.Visibility) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesMard2pAPIVisibility: play.api.libs.json.Writes[Visibility] = { (obj: payp.mard2p.api.v0.models.Visibility) => { payp.mard2p.api.v0.models.json.jsonWritesMard2pAPIVisibility(obj) } } implicit def jsonReadsMard2pAPIAccount: play.api.libs.json.Reads[payp.mard2p.api.v0.models.Account] = { for { accountid <- (__ \ "accountid").read[Long] ownerid <- (__ \ "ownerid").read[String] totalAmount <- (__ \ "total_amount").read[Double] currency <- (__ \ "currency").read[String] sold <- (__ \ "sold").read[Double] debit <- (__ \ "debit").read[Double] } yield Account(accountid, ownerid, totalAmount, currency, sold, debit) } def jsObjectAccount(obj: payp.mard2p.api.v0.models.Account): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "accountid" -> play.api.libs.json.JsNumber(obj.accountid), "ownerid" -> play.api.libs.json.JsString(obj.ownerid), "total_amount" -> play.api.libs.json.JsNumber(obj.totalAmount), "currency" -> play.api.libs.json.JsString(obj.currency), "sold" -> play.api.libs.json.JsNumber(obj.sold), "debit" -> play.api.libs.json.JsNumber(obj.debit) ) } implicit def jsonWritesMard2pAPIAccount: play.api.libs.json.Writes[Account] = { (obj: payp.mard2p.api.v0.models.Account) => { payp.mard2p.api.v0.models.json.jsObjectAccount(obj) } } implicit def jsonReadsMard2pAPIAccountForm: play.api.libs.json.Reads[payp.mard2p.api.v0.models.AccountForm] = { for { accountid <- (__ \ "accountid").read[Long] ownerid <- (__ \ "ownerid").read[String] totalAmount <- (__ \ "total_amount").readNullable[Double] sold <- (__ \ "sold").read[Double] debit <- (__ \ "debit").readNullable[Double] currency <- (__ \ "currency").read[String] } yield AccountForm(accountid, ownerid, totalAmount, sold, debit, currency) } def jsObjectAccountForm(obj: payp.mard2p.api.v0.models.AccountForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "accountid" -> play.api.libs.json.JsNumber(obj.accountid), "ownerid" -> play.api.libs.json.JsString(obj.ownerid), "sold" -> play.api.libs.json.JsNumber(obj.sold), "currency" -> play.api.libs.json.JsString(obj.currency) ) ++ (obj.totalAmount match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("total_amount" -> play.api.libs.json.JsNumber(x)) }) ++ (obj.debit match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("debit" -> play.api.libs.json.JsNumber(x)) }) } implicit def jsonWritesMard2pAPIAccountForm: play.api.libs.json.Writes[AccountForm] = { (obj: payp.mard2p.api.v0.models.AccountForm) => { payp.mard2p.api.v0.models.json.jsObjectAccountForm(obj) } } implicit def jsonReadsMard2pAPIDeposit: play.api.libs.json.Reads[payp.mard2p.api.v0.models.Deposit] = { for { depid <- (__ \ "depid").read[Long] paymentid <- (__ \ "paymentid").read[Long] } yield Deposit(depid, paymentid) } def jsObjectDeposit(obj: payp.mard2p.api.v0.models.Deposit): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "depid" -> play.api.libs.json.JsNumber(obj.depid), "paymentid" -> play.api.libs.json.JsNumber(obj.paymentid) ) } implicit def jsonWritesMard2pAPIDeposit: play.api.libs.json.Writes[Deposit] = { (obj: payp.mard2p.api.v0.models.Deposit) => { payp.mard2p.api.v0.models.json.jsObjectDeposit(obj) } } implicit def jsonReadsMard2pAPIPayment: play.api.libs.json.Reads[payp.mard2p.api.v0.models.Payment] = { for { payid <- (__ \ "payid").read[Long] actorid <- (__ \ "actorid").read[String] amount <- (__ \ "amount").read[Double] refAccountid <- (__ \ "ref_accountid").read[Long] paymentMethod <- (__ \ "payment_method").read[String] operatorid <- (__ \ "operatorid").read[String] phone <- (__ \ "phone").read[Long] pin <- (__ \ "pin").read[Int] currency <- (__ \ "currency").read[String] paymentContext <- (__ \ "payment_context").read[String] } yield Payment( payid, actorid, amount, refAccountid, paymentMethod, operatorid, phone, pin, currency, paymentContext ) } def jsObjectPayment(obj: payp.mard2p.api.v0.models.Payment): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "payid" -> play.api.libs.json.JsNumber(obj.payid), "actorid" -> play.api.libs.json.JsString(obj.actorid), "amount" -> play.api.libs.json.JsNumber(obj.amount), "ref_accountid" -> play.api.libs.json.JsNumber(obj.refAccountid), "payment_method" -> play.api.libs.json.JsString(obj.paymentMethod), "operatorid" -> play.api.libs.json.JsString(obj.operatorid), "phone" -> play.api.libs.json.JsNumber(obj.phone), "pin" -> play.api.libs.json.JsNumber(obj.pin), "currency" -> play.api.libs.json.JsString(obj.currency), "payment_context" -> play.api.libs.json.JsString(obj.paymentContext) ) } implicit def jsonWritesMard2pAPIPayment: play.api.libs.json.Writes[Payment] = { (obj: payp.mard2p.api.v0.models.Payment) => { payp.mard2p.api.v0.models.json.jsObjectPayment(obj) } } implicit def jsonReadsMard2pAPIPaymentForm: play.api.libs.json.Reads[payp.mard2p.api.v0.models.PaymentForm] = { for { payid <- (__ \ "payid").read[Long] actorid <- (__ \ "actorid").read[String] amount <- (__ \ "amount").read[Double] refAccountid <- (__ \ "ref_accountid").read[Long] paymentMethod <- (__ \ "payment_method").read[String] operatorid <- (__ \ "operatorid").read[String] phone <- (__ \ "phone").read[Long] pin <- (__ \ "pin").read[Int] currency <- (__ \ "currency").read[String] paymentContext <- (__ \ "payment_context").read[String] } yield PaymentForm( payid, actorid, amount, refAccountid, paymentMethod, operatorid, phone, pin, currency, paymentContext ) } def jsObjectPaymentForm(obj: payp.mard2p.api.v0.models.PaymentForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "payid" -> play.api.libs.json.JsNumber(obj.payid), "actorid" -> play.api.libs.json.JsString(obj.actorid), "amount" -> play.api.libs.json.JsNumber(obj.amount), "ref_accountid" -> play.api.libs.json.JsNumber(obj.refAccountid), "payment_method" -> play.api.libs.json.JsString(obj.paymentMethod), "operatorid" -> play.api.libs.json.JsString(obj.operatorid), "phone" -> play.api.libs.json.JsNumber(obj.phone), "pin" -> play.api.libs.json.JsNumber(obj.pin), "currency" -> play.api.libs.json.JsString(obj.currency), "payment_context" -> play.api.libs.json.JsString(obj.paymentContext) ) } implicit def jsonWritesMard2pAPIPaymentForm: play.api.libs.json.Writes[PaymentForm] = { (obj: payp.mard2p.api.v0.models.PaymentForm) => { payp.mard2p.api.v0.models.json.jsObjectPaymentForm(obj) } } implicit def jsonReadsMard2pAPITransfer: play.api.libs.json.Reads[payp.mard2p.api.v0.models.Transfer] = { for { transferid <- (__ \ "transferid").read[Long] senderid <- (__ \ "senderid").read[String] amount <- (__ \ "amount").read[Double] refAccountidReceiver <- (__ \ "ref_accountid_receiver").read[Long] refAccountidSender <- (__ \ "ref_accountid_sender").read[Long] currency <- (__ \ "currency").read[String] } yield Transfer(transferid, senderid, amount, refAccountidReceiver, refAccountidSender, currency) } def jsObjectTransfer(obj: payp.mard2p.api.v0.models.Transfer): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "transferid" -> play.api.libs.json.JsNumber(obj.transferid), "senderid" -> play.api.libs.json.JsString(obj.senderid), "amount" -> play.api.libs.json.JsNumber(obj.amount), "ref_accountid_receiver" -> play.api.libs.json.JsNumber(obj.refAccountidReceiver), "ref_accountid_sender" -> play.api.libs.json.JsNumber(obj.refAccountidSender), "currency" -> play.api.libs.json.JsString(obj.currency) ) } implicit def jsonWritesMard2pAPITransfer: play.api.libs.json.Writes[Transfer] = { (obj: payp.mard2p.api.v0.models.Transfer) => { payp.mard2p.api.v0.models.json.jsObjectTransfer(obj) } } implicit def jsonReadsMard2pAPITransferForm: play.api.libs.json.Reads[payp.mard2p.api.v0.models.TransferForm] = { for { transferid <- (__ \ "transferid").read[Long] senderid <- (__ \ "senderid").read[String] amount <- (__ \ "amount").read[Double] refAccountidReceiver <- (__ \ "ref_accountid_receiver").read[Long] refAccountidSender <- (__ \ "ref_accountid_sender").read[Long] currency <- (__ \ "currency").read[String] } yield TransferForm(transferid, senderid, amount, refAccountidReceiver, refAccountidSender, currency) } def jsObjectTransferForm(obj: payp.mard2p.api.v0.models.TransferForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "transferid" -> play.api.libs.json.JsNumber(obj.transferid), "senderid" -> play.api.libs.json.JsString(obj.senderid), "amount" -> play.api.libs.json.JsNumber(obj.amount), "ref_accountid_receiver" -> play.api.libs.json.JsNumber(obj.refAccountidReceiver), "ref_accountid_sender" -> play.api.libs.json.JsNumber(obj.refAccountidSender), "currency" -> play.api.libs.json.JsString(obj.currency) ) } implicit def jsonWritesMard2pAPITransferForm: play.api.libs.json.Writes[TransferForm] = { (obj: payp.mard2p.api.v0.models.TransferForm) => { payp.mard2p.api.v0.models.json.jsObjectTransferForm(obj) } } implicit def jsonReadsMard2pAPIValidation: play.api.libs.json.Reads[payp.mard2p.api.v0.models.Validation] = { for { valid <- (__ \ "valid").read[Boolean] errors <- (__ \ "errors").read[Seq[String]] } yield Validation(valid, errors) } def jsObjectValidation(obj: payp.mard2p.api.v0.models.Validation): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "valid" -> play.api.libs.json.JsBoolean(obj.valid), "errors" -> play.api.libs.json.Json.toJson(obj.errors) ) } implicit def jsonWritesMard2pAPIValidation: play.api.libs.json.Writes[Validation] = { (obj: payp.mard2p.api.v0.models.Validation) => { payp.mard2p.api.v0.models.json.jsObjectValidation(obj) } } implicit def jsonReadsMard2pAPIWithdraw: play.api.libs.json.Reads[payp.mard2p.api.v0.models.Withdraw] = { for { wdwid <- (__ \ "wdwid").read[Long] paymentid <- (__ \ "paymentid").read[Long] } yield Withdraw(wdwid, paymentid) } def jsObjectWithdraw(obj: payp.mard2p.api.v0.models.Withdraw): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "wdwid" -> play.api.libs.json.JsNumber(obj.wdwid), "paymentid" -> play.api.libs.json.JsNumber(obj.paymentid) ) } implicit def jsonWritesMard2pAPIWithdraw: play.api.libs.json.Writes[Withdraw] = { (obj: payp.mard2p.api.v0.models.Withdraw) => { payp.mard2p.api.v0.models.json.jsObjectWithdraw(obj) } } }