Newer
Older
gitbucket_jkp / src / main / scala / api / ApiCombinedCommitStatus.scala
@nazoking nazoking on 1 Mar 2015 955 bytes move api classes to api package
package api

import model.Account
import model.CommitStatus
import model.CommitState

/**
 * https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref
 */
case class ApiCombinedCommitStatus(
  state: String,
  sha: String,
  total_count: Int,
  statuses: Iterable[ApiCommitStatus],
  repository: ApiRepository){
  // val commit_url = ApiPath(s"/api/v3/repos/${repository.full_name}/${sha}")
  val url = ApiPath(s"/api/v3/repos/${repository.full_name}/commits/${sha}/status")
}
object ApiCombinedCommitStatus {
  def apply(sha:String, statuses: Iterable[(CommitStatus, Account)], repository:ApiRepository): ApiCombinedCommitStatus = ApiCombinedCommitStatus(
    state      = CommitState.combine(statuses.map(_._1.state).toSet).name,
    sha        = sha,
    total_count= statuses.size,
    statuses   = statuses.map{ case (s, a)=> ApiCommitStatus(s, ApiUser(a)) },
    repository = repository)
}