/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.6 * User agent: apibuilder app.apibuilder.io/flow/postman-generator-attributes/0.0.6/http4s_0_17 */ package io.flow.postman.generator.attributes.v0.models { package object json { import io.circe.Decoder._ import io.circe.Encoder._ import scala.language.implicitConversions // See below - Make Scala 2.11 Either monadic import scala.util.Try import io.circe.{Json, JsonObject, Encoder, Decoder, DecodingFailure} import io.circe.syntax._ import io.apibuilder.spec.v0.models.json._ import io.flow.postman.generator.attributes.v0.models.json._ // Make Scala 2.11 Either monadic private[v0] implicit def eitherOps[A,B](e: Either[A,B]) = cats.implicits.catsSyntaxEither(e) private[v0] implicit val decodeUUID: Decoder[_root_.java.util.UUID] = Decoder.decodeString.emapTry(str => Try(_root_.java.util.UUID.fromString(str))) private[v0] implicit val encodeUUID: Encoder[_root_.java.util.UUID] = Encoder.encodeString.contramap[_root_.java.util.UUID](uuid => uuid.toString) private[v0] implicit val decodeInstant: Decoder[_root_.java.time.Instant] = Decoder.decodeString.emapTry(str => Try(_root_.java.time.OffsetDateTime.parse(str).toInstant)) private[v0] implicit val encodeInstant: Encoder[_root_.java.time.Instant] = Encoder.encodeString.contramap[_root_.java.time.Instant](_.toString) private[v0] implicit val decodeLocalDate: Decoder[_root_.java.time.LocalDate] = Decoder.decodeString.emapTry(str => Try(_root_.java.time.LocalDate.parse(str))) private[v0] implicit val encodeLocalDate: Encoder[_root_.java.time.LocalDate] = Encoder.encodeString.contramap[_root_.java.time.LocalDate](_.toString) implicit val jsonDecoderPostmanGeneratorAttributesAttributeName: Decoder[io.flow.postman.generator.attributes.v0.models.AttributeName] = Decoder.decodeString.map(io.flow.postman.generator.attributes.v0.models.AttributeName(_)) implicit val jsonEncoderPostmanGeneratorAttributesAttributeName: Encoder[io.flow.postman.generator.attributes.v0.models.AttributeName] = Encoder.encodeString.contramap[io.flow.postman.generator.attributes.v0.models.AttributeName](_.toString) implicit def decodePostmanGeneratorAttributesBasicAuth: Decoder[BasicAuth] = Decoder.instance { c => for { username <- c.downField("username").as[String] password <- c.downField("password").as[String] } yield { BasicAuth( username = username, password = password ) } } implicit def encodePostmanGeneratorAttributesBasicAuth: Encoder[BasicAuth] = Encoder.instance { t => Json.fromFields(Seq( Some("username" -> t.username.asJson), Some("password" -> t.password.asJson) ).flatten) } implicit def decodePostmanGeneratorAttributesObjectReference: Decoder[ObjectReference] = Decoder.instance { c => for { relatedServiceNamespace <- c.downField("related_service_namespace").as[String] resourceType <- c.downField("resource_type").as[String] operationMethod <- c.downField("operation_method").as[io.apibuilder.spec.v0.models.Method] operationPath <- c.downField("operation_path").as[String] identifierField <- c.downField("identifier_field").as[String] queryParams <- c.downField("query_params").as[Option[Map[String, String]]] deleteOperationPath <- c.downField("delete_operation_path").as[Option[String]] } yield { ObjectReference( relatedServiceNamespace = relatedServiceNamespace, resourceType = resourceType, operationMethod = operationMethod, operationPath = operationPath, identifierField = identifierField, queryParams = queryParams, deleteOperationPath = deleteOperationPath ) } } implicit def encodePostmanGeneratorAttributesObjectReference: Encoder[ObjectReference] = Encoder.instance { t => Json.fromFields(Seq( Some("related_service_namespace" -> t.relatedServiceNamespace.asJson), Some("resource_type" -> t.resourceType.asJson), Some("operation_method" -> t.operationMethod.asJson), Some("operation_path" -> t.operationPath.asJson), Some("identifier_field" -> t.identifierField.asJson), t.queryParams.map(t => "query_params" -> t.asJson), t.deleteOperationPath.map(t => "delete_operation_path" -> t.asJson) ).flatten) } implicit def decodePostmanGeneratorAttributesValueSubstitute: Decoder[ValueSubstitute] = Decoder.instance { c => for { substitute <- c.downField("substitute").as[String] } yield { ValueSubstitute( substitute = substitute ) } } implicit def encodePostmanGeneratorAttributesValueSubstitute: Encoder[ValueSubstitute] = Encoder.instance { t => Json.fromFields(Seq( Some("substitute" -> t.substitute.asJson) ).flatten) } } }