/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1-SNAPSHOT * User agent: apibuilder app.apibuilder.io/gimbalabs/hilltop-api/0.0.1-SNAPSHOT/anorm_2_x_parsers */ package io.gimbalabs.hilltop.api.v0.anorm.conversions { import anorm.{Column, MetaDataItem, TypeDoesNotMatch} import play.api.libs.json.{JsArray, JsObject, JsValue} import scala.util.{Failure, Success, Try} /** * Conversions to collections of objects using JSON. */ object Util { def parser[T]( f: play.api.libs.json.JsValue => T ) = anorm.Column.nonNull { (value, meta) => val MetaDataItem(columnName, nullable, clazz) = meta value match { case json: org.postgresql.util.PGobject => parseJson(f, columnName.qualified, json.getValue) case json: java.lang.String => parseJson(f, columnName.qualified, json) case _=> { Left( TypeDoesNotMatch( s"Column[${columnName.qualified}] error converting $value to Json. Expected instance of type[org.postgresql.util.PGobject] and not[${value.asInstanceOf[AnyRef].getClass}]" ) ) } } } private def parseJson[T](f: play.api.libs.json.JsValue => T, columnName: String, value: String) = { Try { f( play.api.libs.json.Json.parse(value) ) } match { case Success(result) => Right(result) case Failure(ex) => Left( TypeDoesNotMatch( s"Column[$columnName] error parsing json $value: $ex" ) ) } } } object Types { import io.gimbalabs.hilltop.api.v0.models.json._ implicit val columnToSeqHilltopApiCountry: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Country]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Country]] } implicit val columnToMapHilltopApiCountry: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Country]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Country]] } implicit val columnToSeqHilltopApiActiveStakeAmount: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.ActiveStakeAmount]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.ActiveStakeAmount]] } implicit val columnToMapHilltopApiActiveStakeAmount: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.ActiveStakeAmount]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.ActiveStakeAmount]] } implicit val columnToSeqHilltopApiAddressStakeAmount: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.AddressStakeAmount]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.AddressStakeAmount]] } implicit val columnToMapHilltopApiAddressStakeAmount: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.AddressStakeAmount]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.AddressStakeAmount]] } implicit val columnToSeqHilltopApiBlock: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Block]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Block]] } implicit val columnToMapHilltopApiBlock: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Block]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Block]] } implicit val columnToSeqHilltopApiCnftMetadataV001: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001]] } implicit val columnToMapHilltopApiCnftMetadataV001: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001]] } implicit val columnToSeqHilltopApiCnftMetadataV001Asset: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001Asset]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001Asset]] } implicit val columnToMapHilltopApiCnftMetadataV001Asset: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001Asset]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001Asset]] } implicit val columnToSeqHilltopApiDayBlock: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.DayBlock]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.DayBlock]] } implicit val columnToMapHilltopApiDayBlock: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.DayBlock]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.DayBlock]] } implicit val columnToSeqHilltopApiDelegation: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Delegation]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Delegation]] } implicit val columnToMapHilltopApiDelegation: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Delegation]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Delegation]] } implicit val columnToSeqHilltopApiDelegatorsCount: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.DelegatorsCount]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.DelegatorsCount]] } implicit val columnToMapHilltopApiDelegatorsCount: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.DelegatorsCount]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.DelegatorsCount]] } implicit val columnToSeqHilltopApiEpoch: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Epoch]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Epoch]] } implicit val columnToMapHilltopApiEpoch: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Epoch]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Epoch]] } implicit val columnToSeqHilltopApiGenericError: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.GenericError]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.GenericError]] } implicit val columnToMapHilltopApiGenericError: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.GenericError]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.GenericError]] } implicit val columnToSeqHilltopApiHealthcheck: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Healthcheck]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Healthcheck]] } implicit val columnToMapHilltopApiHealthcheck: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Healthcheck]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Healthcheck]] } implicit val columnToSeqHilltopApiNativeAsset: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NativeAsset]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NativeAsset]] } implicit val columnToMapHilltopApiNativeAsset: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NativeAsset]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NativeAsset]] } implicit val columnToSeqHilltopApiNativeAssetDetails: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetDetails]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetDetails]] } implicit val columnToMapHilltopApiNativeAssetDetails: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetDetails]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetDetails]] } implicit val columnToSeqHilltopApiNativeAssetDetailsRequest: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetDetailsRequest]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetDetailsRequest]] } implicit val columnToMapHilltopApiNativeAssetDetailsRequest: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetDetailsRequest]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetDetailsRequest]] } implicit val columnToSeqHilltopApiNativeAssetId: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetId]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetId]] } implicit val columnToMapHilltopApiNativeAssetId: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetId]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NativeAssetId]] } implicit val columnToSeqHilltopApiNftDetails: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftDetails]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftDetails]] } implicit val columnToMapHilltopApiNftDetails: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftDetails]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftDetails]] } implicit val columnToSeqHilltopApiNftMetadata: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadata]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadata]] } implicit val columnToMapHilltopApiNftMetadata: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadata]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadata]] } implicit val columnToSeqHilltopApiNftMetadataFile: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataFile]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataFile]] } implicit val columnToMapHilltopApiNftMetadataFile: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataFile]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataFile]] } implicit val columnToSeqHilltopApiNftMetadataFilesAsObject: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataFilesAsObject]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataFilesAsObject]] } implicit val columnToMapHilltopApiNftMetadataFilesAsObject: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataFilesAsObject]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataFilesAsObject]] } implicit val columnToSeqHilltopApiNftMetadataImgArray: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataImgArray]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataImgArray]] } implicit val columnToMapHilltopApiNftMetadataImgArray: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataImgArray]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataImgArray]] } implicit val columnToSeqHilltopApiNftMetadataNoFiles: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataNoFiles]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataNoFiles]] } implicit val columnToMapHilltopApiNftMetadataNoFiles: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataNoFiles]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.NftMetadataNoFiles]] } implicit val columnToSeqHilltopApiPoolRetiring: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.PoolRetiring]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.PoolRetiring]] } implicit val columnToMapHilltopApiPoolRetiring: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.PoolRetiring]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.PoolRetiring]] } implicit val columnToSeqHilltopApiPoolUpdate: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.PoolUpdate]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.PoolUpdate]] } implicit val columnToMapHilltopApiPoolUpdate: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.PoolUpdate]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.PoolUpdate]] } implicit val columnToSeqHilltopApiReward: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Reward]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Reward]] } implicit val columnToMapHilltopApiReward: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Reward]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Reward]] } implicit val columnToSeqHilltopApiSigma: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Sigma]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Sigma]] } implicit val columnToMapHilltopApiSigma: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Sigma]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Sigma]] } implicit val columnToSeqHilltopApiStakepool: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Stakepool]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Stakepool]] } implicit val columnToMapHilltopApiStakepool: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Stakepool]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Stakepool]] } implicit val columnToSeqHilltopApiStakepoolDelegation: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.StakepoolDelegation]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.StakepoolDelegation]] } implicit val columnToMapHilltopApiStakepoolDelegation: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.StakepoolDelegation]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.StakepoolDelegation]] } implicit val columnToSeqHilltopApiStakepoolMetadata: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.StakepoolMetadata]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.StakepoolMetadata]] } implicit val columnToMapHilltopApiStakepoolMetadata: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.StakepoolMetadata]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.StakepoolMetadata]] } implicit val columnToSeqHilltopApiTransaction: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Transaction]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.Transaction]] } implicit val columnToMapHilltopApiTransaction: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Transaction]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.Transaction]] } implicit val columnToSeqHilltopApiTransactionHistoryRequest: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.TransactionHistoryRequest]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.TransactionHistoryRequest]] } implicit val columnToMapHilltopApiTransactionHistoryRequest: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.TransactionHistoryRequest]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.TransactionHistoryRequest]] } implicit val columnToSeqHilltopApiWalletBalance: Column[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.WalletBalance]] = Util.parser { _.as[Seq[_root_.io.gimbalabs.hilltop.api.v0.models.WalletBalance]] } implicit val columnToMapHilltopApiWalletBalance: Column[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.WalletBalance]] = Util.parser { _.as[Map[String, _root_.io.gimbalabs.hilltop.api.v0.models.WalletBalance]] } } object Standard { implicit val columnToJsObject: Column[play.api.libs.json.JsObject] = Util.parser { _.as[play.api.libs.json.JsObject] } implicit val columnToJsValue: Column[play.api.libs.json.JsValue] = Util.parser { _.as[play.api.libs.json.JsValue] } implicit val columnToSeqBoolean: Column[Seq[Boolean]] = Util.parser { _.as[Seq[Boolean]] } implicit val columnToMapBoolean: Column[Map[String, Boolean]] = Util.parser { _.as[Map[String, Boolean]] } implicit val columnToSeqDouble: Column[Seq[Double]] = Util.parser { _.as[Seq[Double]] } implicit val columnToMapDouble: Column[Map[String, Double]] = Util.parser { _.as[Map[String, Double]] } implicit val columnToSeqInt: Column[Seq[Int]] = Util.parser { _.as[Seq[Int]] } implicit val columnToMapInt: Column[Map[String, Int]] = Util.parser { _.as[Map[String, Int]] } implicit val columnToSeqLong: Column[Seq[Long]] = Util.parser { _.as[Seq[Long]] } implicit val columnToMapLong: Column[Map[String, Long]] = Util.parser { _.as[Map[String, Long]] } implicit val columnToSeqLocalDate: Column[Seq[_root_.org.joda.time.LocalDate]] = Util.parser { _.as[Seq[_root_.org.joda.time.LocalDate]] } implicit val columnToMapLocalDate: Column[Map[String, _root_.org.joda.time.LocalDate]] = Util.parser { _.as[Map[String, _root_.org.joda.time.LocalDate]] } implicit val columnToSeqDateTime: Column[Seq[_root_.org.joda.time.DateTime]] = Util.parser { _.as[Seq[_root_.org.joda.time.DateTime]] } implicit val columnToMapDateTime: Column[Map[String, _root_.org.joda.time.DateTime]] = Util.parser { _.as[Map[String, _root_.org.joda.time.DateTime]] } implicit val columnToSeqBigDecimal: Column[Seq[BigDecimal]] = Util.parser { _.as[Seq[BigDecimal]] } implicit val columnToMapBigDecimal: Column[Map[String, BigDecimal]] = Util.parser { _.as[Map[String, BigDecimal]] } implicit val columnToSeqJsObject: Column[Seq[_root_.play.api.libs.json.JsObject]] = Util.parser { _.as[Seq[_root_.play.api.libs.json.JsObject]] } implicit val columnToMapJsObject: Column[Map[String, _root_.play.api.libs.json.JsObject]] = Util.parser { _.as[Map[String, _root_.play.api.libs.json.JsObject]] } implicit val columnToSeqJsValue: Column[Seq[_root_.play.api.libs.json.JsValue]] = Util.parser { _.as[Seq[_root_.play.api.libs.json.JsValue]] } implicit val columnToMapJsValue: Column[Map[String, _root_.play.api.libs.json.JsValue]] = Util.parser { _.as[Map[String, _root_.play.api.libs.json.JsValue]] } implicit val columnToSeqString: Column[Seq[String]] = Util.parser { _.as[Seq[String]] } implicit val columnToMapString: Column[Map[String, String]] = Util.parser { _.as[Map[String, String]] } implicit val columnToSeqUUID: Column[Seq[_root_.java.util.UUID]] = Util.parser { _.as[Seq[_root_.java.util.UUID]] } implicit val columnToMapUUID: Column[Map[String, _root_.java.util.UUID]] = Util.parser { _.as[Map[String, _root_.java.util.UUID]] } } }