Files
GitBucket/src/main/scala/service/IssuesService.scala
2013-06-20 19:43:13 +09:00

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
}