Fix query in RepositoryService#getVisibleRepositories fluently :-)

This commit is contained in:
takezoe
2013-07-30 12:42:42 +09:00
parent d675115615
commit b8da93912f

View File

@@ -90,8 +90,7 @@ trait RepositoryService { self: AccountService =>
* @return the repository information which is sorted in descending order of lastActivityDate. * @return the repository information which is sorted in descending order of lastActivityDate.
*/ */
def getVisibleRepositories(loginAccount: Option[Account], baseUrl: String, repositoryUserName: Option[String] = None): List[RepositoryInfo] = { def getVisibleRepositories(loginAccount: Option[Account], baseUrl: String, repositoryUserName: Option[String] = None): List[RepositoryInfo] = {
(loginAccount match {
val query = loginAccount match {
// for Administrators // for Administrators
case Some(x) if(x.isAdmin) => Query(Repositories) case Some(x) if(x.isAdmin) => Query(Repositories)
// for Normal Users // for Normal Users
@@ -101,11 +100,9 @@ trait RepositoryService { self: AccountService =>
} }
// for Guests // for Guests
case None => Query(Repositories) filter(_.isPrivate is false.bind) case None => Query(Repositories) filter(_.isPrivate is false.bind)
} }).filter { t =>
repositoryUserName.map { userName => t.userName is userName.bind } getOrElse ConstColumn.TRUE
val filtered = repositoryUserName.map { userName => query.filter(_.userName is userName.bind) } getOrElse query }.sortBy(_.lastActivityDate desc).list.map{ repository =>
filtered.sortBy(_.lastActivityDate desc).list.map{ repository =>
new RepositoryInfo(JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl), repository) new RepositoryInfo(JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl), repository)
} }
} }