diff --git a/src/main/resources/update/1_5.sql b/src/main/resources/update/1_5.sql index 21a8337..35131fc 100644 --- a/src/main/resources/update/1_5.sql +++ b/src/main/resources/update/1_5.sql @@ -18,3 +18,5 @@ ALTER TABLE PULL_REQUEST ADD CONSTRAINT IDX_PULL_REQUEST_PK PRIMARY KEY (USER_NAME, REPOSITORY_NAME, ISSUE_ID); ALTER TABLE PULL_REQUEST ADD CONSTRAINT IDX_PULL_REQUEST_FK0 FOREIGN KEY (USER_NAME, REPOSITORY_NAME, ISSUE_ID) REFERENCES ISSUE (USER_NAME, REPOSITORY_NAME, ISSUE_ID); ALTER TABLE PULL_REQUEST ADD CONSTRAINT IDX_PULL_REQUEST_FK1 FOREIGN KEY (REQUEST_USER_NAME, REQUEST_REPOSITORY_NAME) REFERENCES REPOSITORY (USER_NAME, REPOSITORY_NAME); + +ALTER TABLE ISSUE ADD COLUMN PULL_REQUEST BOOLEAN NOT NULL DEFAULT FALSE; diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala index 26028ed..f221f83 100644 --- a/src/main/scala/app/PullRequestsController.scala +++ b/src/main/scala/app/PullRequestsController.scala @@ -262,23 +262,25 @@ val loginUserName = context.loginAccount.get.userName val issueId = createIssue( - repository.owner, - repository.name, - loginUserName, - form.title, - form.content, - None, None) + owner = repository.owner, + repository = repository.name, + loginUser = loginUserName, + title = form.title, + content = form.content, + assignedUserName = None, + milestoneId = None, + isPullRequest = true) createPullRequest( - repository.owner, - repository.name, - issueId, - form.targetBranch, - form.requestUserName, - repository.name, - form.requestBranch, - form.commitIdFrom, - form.commitIdTo) + originUserName = repository.owner, + originRepositoryName = repository.name, + issueId = issueId, + originBranch = form.targetBranch, + requestUserName = form.requestUserName, + requestRepositoryName = repository.name, + requestBranch = form.requestBranch, + commitIdFrom = form.commitIdFrom, + commitIdTo = form.commitIdTo) // fetch requested branch JGitUtil.withGit(getRepositoryDir(repository.owner, repository.name)){ git => diff --git a/src/main/scala/model/Issue.scala b/src/main/scala/model/Issue.scala index 769b059..d5ce8a3 100644 --- a/src/main/scala/model/Issue.scala +++ b/src/main/scala/model/Issue.scala @@ -20,7 +20,8 @@ def closed = column[Boolean]("CLOSED") def registeredDate = column[java.util.Date]("REGISTERED_DATE") def updatedDate = column[java.util.Date]("UPDATED_DATE") - def * = userName ~ repositoryName ~ issueId ~ openedUserName ~ milestoneId.? ~ assignedUserName.? ~ title ~ content.? ~ closed ~ registeredDate ~ updatedDate <> (Issue, Issue.unapply _) + def pullRequest = column[Boolean]("PULL_REQUEST") + def * = userName ~ repositoryName ~ issueId ~ openedUserName ~ milestoneId.? ~ assignedUserName.? ~ title ~ content.? ~ closed ~ registeredDate ~ updatedDate ~ pullRequest <> (Issue, Issue.unapply _) def byPrimaryKey(owner: String, repository: String, issueId: Int) = byIssue(owner, repository, issueId) } @@ -36,4 +37,5 @@ content: Option[String], closed: Boolean, registeredDate: java.util.Date, - updatedDate: java.util.Date) \ No newline at end of file + updatedDate: java.util.Date, + isPullRequest: Boolean) \ No newline at end of file diff --git a/src/main/scala/service/IssuesService.scala b/src/main/scala/service/IssuesService.scala index 543c795..3e44c6c 100644 --- a/src/main/scala/service/IssuesService.scala +++ b/src/main/scala/service/IssuesService.scala @@ -179,7 +179,7 @@ } def createIssue(owner: String, repository: String, loginUser: String, title: String, content: Option[String], - assignedUserName: Option[String], milestoneId: Option[Int]) = + assignedUserName: Option[String], milestoneId: Option[Int], isPullRequest: Boolean = false) = // next id number sql"SELECT ISSUE_ID + 1 FROM ISSUE_ID WHERE USER_NAME = $owner AND REPOSITORY_NAME = $repository FOR UPDATE".as[Int] .firstOption.filter { id => @@ -194,7 +194,8 @@ content, false, currentDate, - currentDate) + currentDate, + isPullRequest) // increment issue id IssueId