mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-07 05:55:51 +01:00
(refs #2)Add opened user filter and count to the pull request list.
This commit is contained in:
@@ -6,6 +6,8 @@ import Database.threadLocalSession
|
||||
import model._
|
||||
|
||||
trait PullRequestService { self: IssuesService =>
|
||||
import PullRequestService._
|
||||
// implicit val getPullRequestCount = GetResult(r => PullRequestCount(r.<<, r.<<))
|
||||
|
||||
def getPullRequest(owner: String, repository: String, issueId: Int): Option[(Issue, PullRequest)] = {
|
||||
val issue = getIssue(owner, repository, issueId.toString)
|
||||
@@ -17,6 +19,27 @@ trait PullRequestService { self: IssuesService =>
|
||||
} else None
|
||||
}
|
||||
|
||||
def getPullRequestCount(closed: Boolean, repository: Option[(String, String)]): List[PullRequestCount] = {
|
||||
Query(PullRequests)
|
||||
.innerJoin(Issues).on { (t1, t2) => t1.byPrimaryKey(t2.userName, t2.repositoryName, t2.issueId) }
|
||||
.filter { case (t1, t2) =>
|
||||
(t2.closed is closed.bind) &&
|
||||
(t1.userName is repository.get._1, repository.isDefined) &&
|
||||
(t1.repositoryName is repository.get._2, repository.isDefined)
|
||||
}
|
||||
.groupBy { case (t1, t2) =>
|
||||
t2.openedUserName
|
||||
}
|
||||
.map { case (userName, t) =>
|
||||
userName ~ t.length
|
||||
}
|
||||
.list
|
||||
.map { x =>
|
||||
PullRequestCount(x._1, x._2)
|
||||
}
|
||||
.sortBy(_.count).reverse
|
||||
}
|
||||
|
||||
def createPullRequest(originUserName: String, originRepositoryName: String, issueId: Int,
|
||||
originBranch: String, requestUserName: String, requestRepositoryName: String, requestBranch: String,
|
||||
commitIdFrom: String, commitIdTo: String): Unit =
|
||||
@@ -34,5 +57,9 @@ trait PullRequestService { self: IssuesService =>
|
||||
}
|
||||
|
||||
object PullRequestService {
|
||||
|
||||
val PullRequestLimit = 25
|
||||
|
||||
case class PullRequestCount(userName: String, count: Int)
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user