diff --git a/src/main/scala/model/Repository.scala b/src/main/scala/model/Repository.scala index 4280b1e..d33cf78 100644 --- a/src/main/scala/model/Repository.scala +++ b/src/main/scala/model/Repository.scala @@ -8,11 +8,10 @@ def isPrivate = column[Boolean]("PRIVATE") def description = column[String]("DESCRIPTION") def defaultBranch = column[String]("DEFAULT_BRANCH") - def registeredDate = column[java.sql.Date]("REGISTERED_DATE") // TODO convert java.util.Date later - def updatedDate = column[java.sql.Date]("UPDATED_DATE") - def lastActivityDate = column[java.sql.Date]("LAST_ACTIVITY_DATE") + def registeredDate = column[java.sql.Timestamp]("REGISTERED_DATE") // TODO convert java.util.Date later + def updatedDate = column[java.sql.Timestamp]("UPDATED_DATE") + def lastActivityDate = column[java.sql.Timestamp]("LAST_ACTIVITY_DATE") def * = repositoryName ~ userName ~ isPrivate ~ description.? ~ defaultBranch ~ registeredDate ~ updatedDate ~ lastActivityDate <> (Repository, Repository.unapply _) -// def ins = repositoryName ~ userName ~ repositoryType ~ description.? ~ defaultBranch ~ registeredDate ~ updatedDate ~ lastActivityDate <> ({ t => Project(None, t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8)}, { (o: Project) => Some((o.projectName, o.userId, o.projectType, o.description, o.defaultBranch, o.registeredDate, o.updatedDate, o.lastActivityDate))}) } case class Repository( @@ -21,7 +20,7 @@ isPrivate: Boolean, description: Option[String], defaultBranch: String, - registeredDate: java.sql.Date, - updatedDate: java.sql.Date, - lastActivityDate: java.sql.Date + registeredDate: java.sql.Timestamp, + updatedDate: java.sql.Timestamp, + lastActivityDate: java.sql.Timestamp ) diff --git a/src/main/scala/service/RepositoryService.scala b/src/main/scala/service/RepositoryService.scala index 2ec7861..7982d04 100644 --- a/src/main/scala/service/RepositoryService.scala +++ b/src/main/scala/service/RepositoryService.scala @@ -27,7 +27,7 @@ // TODO insert default labels. - val currentDate = new java.sql.Date(System.currentTimeMillis) + val currentDate = new java.sql.Timestamp(System.currentTimeMillis) Repositories insert Repository( @@ -98,7 +98,7 @@ } } - q1.union(q2).filter(visibleFor(_, loginUserName)).sortBy(_.lastActivityDate).list map { repository => + q1.union(q2).filter(visibleFor(_, loginUserName)).sortBy(_.lastActivityDate desc).list map { repository => val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl) RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags) } @@ -162,7 +162,7 @@ Query(Repositories) .filter { r => (r.userName is userName.bind) && (r.repositoryName is repositoryName.bind) } .map { _.lastActivityDate } - .update (new java.sql.Date(System.currentTimeMillis)) + .update (new java.sql.Timestamp(System.currentTimeMillis)) /** * Save repository options. @@ -172,7 +172,7 @@ Query(Repositories) .filter { r => (r.userName is userName.bind) && (r.repositoryName is repositoryName.bind) } .map { r => r.description.? ~ r.defaultBranch ~ r.isPrivate ~ r.updatedDate } - .update (description, defaultBranch, isPrivate, new java.sql.Date(System.currentTimeMillis)) + .update (description, defaultBranch, isPrivate, new java.sql.Timestamp(System.currentTimeMillis)) /** * Add collaborator to the repository. diff --git a/src/main/scala/servlet/GitRepositoryServlet.scala b/src/main/scala/servlet/GitRepositoryServlet.scala index a25fb0f..d1ca747 100644 --- a/src/main/scala/servlet/GitRepositoryServlet.scala +++ b/src/main/scala/servlet/GitRepositoryServlet.scala @@ -10,6 +10,7 @@ import javax.servlet.ServletContext import javax.servlet.http.HttpServletRequest import util.{JGitUtil, Directory} +import service._ /** * Provides Git repository via HTTP. @@ -66,21 +67,25 @@ import scala.collection.JavaConverters._ -class CommitLogHook(owner: String, repository: String) extends PostReceiveHook { +class CommitLogHook(owner: String, repository: String) extends PostReceiveHook with RepositoryService with AccountService { private val logger = LoggerFactory.getLogger(classOf[CommitLogHook]) def onPostReceive(receivePack: ReceivePack, commands: java.util.Collection[ReceiveCommand]): Unit = { + JGitUtil.withGit(Directory.getRepositoryDir(owner, repository)) { git => commands.asScala.foreach { command => JGitUtil.getCommitLog(git, command.getOldId.name, command.getNewId.name).foreach { commit => // TODO extract issue id and add comment to issue logger.debug(commit.id + ":" + commit.shortMessage) + + println(owner + "/" + repository + " " + commit.id) + println(commit.fullMessage) } } } - // TODO update repository last modified time. - + // update repository last modified time. + updateLastActivityDate(owner, repository) } } diff --git a/src/main/twirl/account/userinfo.scala.html b/src/main/twirl/account/userinfo.scala.html index d3276d4..e3a64d0 100644 --- a/src/main/twirl/account/userinfo.scala.html +++ b/src/main/twirl/account/userinfo.scala.html @@ -40,7 +40,7 @@ @if(repository.repository.description.isDefined){
@repository.repository.description
} -
Last updated: @helpers.date(repository.repository.lastActivityDate)
+
Last updated: @helpers.datetime(repository.repository.lastActivityDate)
} diff --git a/src/main/twirl/index.scala.html b/src/main/twirl/index.scala.html index b8b590a..1bc06db 100644 --- a/src/main/twirl/index.scala.html +++ b/src/main/twirl/index.scala.html @@ -16,7 +16,7 @@ @if(repository.repository.description.isDefined){
@repository.repository.description
} -
Last updated: @helpers.date(repository.repository.lastActivityDate)
+
Last updated: @helpers.datetime(repository.repository.lastActivityDate)
} } \ No newline at end of file