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

wei-k.ghscala_2.10.0.5.0.source-code.SearchCode.scala Maven / Gradle / Ivy

package ghscala

final case class SearchCode(
  total_count : Long,
  items       : List[SearchCode.Item]
) extends JsonToString[SearchCode]

object SearchCode {

  implicit val searchCodeCodecJson: CodecJson[SearchCode] =
    CodecJson.casecodec2(apply, unapply)(
      "total_count", "items"
    )

  final case class Item(
    name        :String,
    path        :String,
    sha         :String,
    url         :String,
    git_url     :String,
    html_url    :String,
    score       :Double,
    repository  :SearchCode.Repo
  ) extends JsonToString[Item]

  object Item {
    implicit val itemCodecJson: CodecJson[Item] =
      CodecJson.casecodec8(apply, unapply)(
        "name", "path", "sha", "url", "git_url",
        "html_url", "score", "repository"
      )
  }

  final case class Repo(
    id           :Long,
    name         :String,
    full_name    :String,
    owner        :User,
    _private     :Boolean,
    html_url     :String,
    description  :Option[String],
    fork         :Boolean,
    url          :String
  ) extends JsonToString[Repo]

  object Repo{
    implicit val repoCodecJson: CodecJson[Repo] =
      CodecJson.casecodec9(apply, unapply)(
        "id", "name", "full_name", "owner", "private",
        "html_url", "description", "fork", "url"
      )
  }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy