All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.iheart.playSwagger.domain.parameter.GenSwaggerParameter.scala Maven / Gradle / Ivy

The newest version!
package com.iheart.playSwagger.domain.parameter

import play.api.libs.json.JsValue

final case class GenSwaggerParameter private (
    override val name: String,
    override val required: Boolean,
    override val description: Option[String] = None,
    referenceType: Option[String] = None,
    `type`: Option[String] = None,
    format: Option[String] = None,
    override val nullable: Option[Boolean] = None,
    override val default: Option[JsValue] = None,
    example: Option[JsValue] = None,
    items: Option[SwaggerParameter] = None,
    enum: Option[Seq[String]] = None
) extends SwaggerParameter {
  override def update(_required: Boolean, _nullable: Boolean, _default: Option[JsValue]): GenSwaggerParameter =
    copy(required = _required, nullable = Some(_nullable), default = _default)
}

object GenSwaggerParameter {
  def apply(
      `type`: String,
      format: Option[String],
      enum: Option[Seq[String]]
  )(implicit name: String, default: Option[JsValue], description: Option[String]): GenSwaggerParameter =
    new GenSwaggerParameter(
      name = name,
      `type` = Some(`type`),
      format = format,
      required = default.isEmpty,
      default = default,
      enum = enum,
      description = description
    )

  def apply(name: String, `type`: String): GenSwaggerParameter =
    new GenSwaggerParameter(name = name, required = true, `type` = Some(`type`))
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy