mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-03 03:55:58 +01:00
34 lines
1001 B
Scala
34 lines
1001 B
Scala
package service
|
|
|
|
import scala.slick.driver.H2Driver.simple._
|
|
import Database.threadLocalSession
|
|
import scala.slick.jdbc.{StaticQuery => Q}
|
|
import Q.interpolation
|
|
|
|
import model._
|
|
|
|
trait IssuesService {
|
|
def saveIssue(owner: String, repository: String, loginUser: String,
|
|
title: String, content: Option[String]) =
|
|
// 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 =>
|
|
Issues insert Issue(
|
|
owner,
|
|
repository,
|
|
id,
|
|
loginUser,
|
|
None,
|
|
None,
|
|
title,
|
|
content,
|
|
new java.sql.Date(System.currentTimeMillis), // TODO
|
|
new java.sql.Date(System.currentTimeMillis))
|
|
|
|
// increment issue id
|
|
IssueId.filter { t =>
|
|
(t.userName is owner.bind) && (t.repositoryName is repository.bind)
|
|
}.map(_.issueId).update(id) > 0
|
|
} get
|
|
|
|
} |