Add issue pagination.

This commit is contained in:
takezoe
2013-06-26 17:23:31 +09:00
parent 6a06b908b7
commit e8d5a222f1
3 changed files with 54 additions and 16 deletions

View File

@@ -93,9 +93,12 @@ trait IssuesService {
* @param condition the search condition
* @param filter the filter type ("all", "assigned" or "created_by")
* @param userName the filter user name required for "assigned" and "created_by"
* @param offset the offset for pagination
* @param limit the limit for pagination
* @return the count of the search result
*/
def searchIssue(owner: String, repository: String, condition: IssueSearchCondition, filter: String, userName: Option[String]) =
def searchIssue(owner: String, repository: String, condition: IssueSearchCondition,
filter: String, userName: Option[String], offset: Int, limit: Int): List[Issue] =
searchIssueQuery(owner, repository, condition, filter, userName).sortBy { t =>
(condition.sort match {
case "created" => t.registeredDate
@@ -107,7 +110,7 @@ trait IssuesService {
case "desc" => sort desc
}
}
} list
} drop(offset) take(limit) list
/**
* Assembles query for conditional issue searching.
@@ -164,6 +167,8 @@ object IssuesService {
import java.net.URLEncoder
import javax.servlet.http.HttpServletRequest
val IssueLimit = 1
case class IssueSearchCondition(
labels: Set[String] = Set.empty,
milestoneId: Option[Int] = None,