(refs #2)Add merge pull request form.

This commit is contained in:
takezoe
2013-07-14 12:49:49 +09:00
parent 6fd312f784
commit 2fb9f83227
6 changed files with 298 additions and 20 deletions

View File

@@ -25,11 +25,11 @@ trait PullRequestsControllerBase extends ControllerBase {
"content" -> trim(label("Content", optional(text()))),
"branch" -> trim(text(required, maxlength(100))),
"requestUserName" -> trim(text(required, maxlength(100))),
"requestCommitId" -> trim(text(required, maxlength(40)))
"requestBranch" -> trim(text(required, maxlength(100)))
)(PullRequestForm.apply)
case class PullRequestForm(title: String, content: Option[String], branch: String,
requestUserName: String, requestCommitId: String)
requestUserName: String, requestBranch: String)
get("/:owner/:repository/pulls")(referrersOnly { repository =>
pulls.html.list(repository)
@@ -128,7 +128,7 @@ trait PullRequestsControllerBase extends ControllerBase {
form.branch,
form.requestUserName,
repository.name,
form.requestCommitId)
form.requestBranch)
recordPullRequestActivity(repository.owner, repository.name, loginUserName, issueId, form.title)
@@ -138,16 +138,14 @@ trait PullRequestsControllerBase extends ControllerBase {
get("/:owner/:repository/pulls/:id")(referrersOnly { repository =>
val owner = repository.owner
val name = repository.name
val issueId = params("id")
val issueId = params("id").toInt
getIssue(owner, name, issueId) map {
issues.html.issue(
_,
getPullRequest(owner, name, issueId) map { case(issue, pullreq) =>
pulls.html.pullreq(
issue, pullreq,
getComments(owner, name, issueId.toInt),
getIssueLabels(owner, name, issueId.toInt),
(getCollaborators(owner, name) :+ owner).sorted,
getMilestones(owner, name),
Nil,
hasWritePermission(owner, name, context.loginAccount),
repository)
} getOrElse NotFound

View File

@@ -3,11 +3,11 @@ package model
import scala.slick.driver.H2Driver.simple._
object PullRequests extends Table[PullRequest]("PULL_REQUEST") with IssueTemplate {
def branch = column[String]("BRANCH")
def requestUserName = column[String]("REQUEST_USER_NAME")
def requestRepositoryName = column[String]("REQUEST_REPOSITORY_NAME")
def requestCommitId = column[String]("REQUEST_COMMIT_ID")
def originBranch = column[String]("ORIGIN_BRANCH")
def * = userName ~ repositoryName ~ issueId ~ originBranch ~ requestUserName ~ requestRepositoryName ~ requestCommitId <> (PullRequest, PullRequest.unapply _)
def requestBranch = column[String]("REQUEST_BRANCH")
def * = userName ~ repositoryName ~ issueId ~ branch ~ requestUserName ~ requestRepositoryName ~ requestBranch <> (PullRequest, PullRequest.unapply _)
def byPrimaryKey(userName: String, repositoryName: String, issueId: Int) = byIssue(userName, repositoryName, issueId)
def byPrimaryKey(userName: Column[String], repositoryName: Column[String], issueId: Column[Int]) = byIssue(userName, repositoryName, issueId)
@@ -17,7 +17,7 @@ case class PullRequest(
userName: String,
repositoryName: String,
issueId: Int,
originBranch: String,
branch: String,
requestUserName: String,
requestRepositoryName: String,
requestCommitId: String)
requestBranch: String)

View File

@@ -9,10 +9,20 @@ import model._
//import Q.interpolation
trait PullRequestService {
trait PullRequestService { self: IssuesService =>
def getPullRequest(owner: String, repository: String, issueId: Int): Option[(Issue, PullRequest)] = {
val issue = getIssue(owner, repository, issueId.toString)
if(issue.isDefined){
Query(PullRequests).filter(_.byPrimaryKey(owner, repository, issueId)).firstOption match {
case Some(pullreq) => Some((issue.get, pullreq))
case None => None
}
} else None
}
def createPullRequest(originUserName: String, originRepositoryName: String, issueId: Int,
originBranch: String, requestUserName: String, requestRepositoryName: String, requestCommitId: String): Unit =
originBranch: String, requestUserName: String, requestRepositoryName: String, requestBranch: String): Unit =
PullRequests insert (PullRequest(
originUserName,
originRepositoryName,
@@ -20,6 +30,6 @@ trait PullRequestService {
originBranch,
requestUserName,
requestRepositoryName,
requestCommitId))
requestBranch))
}