Creates issue service.

This commit is contained in:
shimamoto
2013-06-20 11:52:56 +09:00
parent d7e968ad8f
commit cc2c085a4a

View File

@@ -0,0 +1,34 @@
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: String) = {
// next id number
val id = sql"SELECT ISSUE_ID + 1 FROM ISSUE_ID WHERE USER_NAME = $owner AND REPOSITORY_NAME = $repository FOR UPDATE".as[Int].first
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 id
IssueId filter { t =>
(t.userName is owner.bind) && (t.repositoryName is repository.bind)
} map (_.issueId) update(id)
}
}