From 73e96c0c4638a666e160fd92935aef2b4c347f5d Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Fri, 22 Jan 2021 20:37:47 +0100 Subject: [PATCH] Use interface PaginatedRequestI --- src/main/kotlin/component/article/routes/FindArticles.kt | 7 +++---- src/main/kotlin/component/citizen/routes/FindCitizens.kt | 7 +++---- .../component/comment/article/routes/GetArticleComments.kt | 6 +++--- .../component/comment/generic/routes/GetCommentChildren.kt | 7 +++---- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/kotlin/component/article/routes/FindArticles.kt b/src/main/kotlin/component/article/routes/FindArticles.kt index feb95d2..9989c96 100644 --- a/src/main/kotlin/component/article/routes/FindArticles.kt +++ b/src/main/kotlin/component/article/routes/FindArticles.kt @@ -4,6 +4,8 @@ import fr.dcproject.component.article.ArticleForListing import fr.dcproject.component.article.ArticleRepository import fr.dcproject.component.article.ArticleVoter import fr.dcproject.component.auth.citizenOrNull +import fr.dcproject.routes.PaginatedRequest +import fr.dcproject.routes.PaginatedRequestI import fr.dcproject.voter.assert import fr.postgresjson.connexion.Paginated import fr.postgresjson.repository.RepositoryI @@ -25,10 +27,7 @@ object FindArticles { val search: String? = null, val createdBy: String? = null, val workgroup: String? = null - ) { - val page: Int = if (page < 1) 1 else page - val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit - } + ) : PaginatedRequestI by PaginatedRequest(page, limit) private fun ArticleRepository.findArticles(request: ArticlesRequest): Paginated { return find( diff --git a/src/main/kotlin/component/citizen/routes/FindCitizens.kt b/src/main/kotlin/component/citizen/routes/FindCitizens.kt index baadc20..5cfd454 100644 --- a/src/main/kotlin/component/citizen/routes/FindCitizens.kt +++ b/src/main/kotlin/component/citizen/routes/FindCitizens.kt @@ -3,6 +3,8 @@ package fr.dcproject.component.citizen.routes import fr.dcproject.component.auth.citizenOrNull import fr.dcproject.component.citizen.CitizenRepository import fr.dcproject.component.citizen.CitizenVoter +import fr.dcproject.routes.PaginatedRequest +import fr.dcproject.routes.PaginatedRequestI import fr.dcproject.voter.assert import fr.postgresjson.repository.RepositoryI import io.ktor.application.call @@ -21,10 +23,7 @@ object FindCitizens { val sort: String? = null, val direction: RepositoryI.Direction? = null, val search: String? = null - ) { - val page: Int = if (page < 1) 1 else page - val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit - } + ) : PaginatedRequestI by PaginatedRequest(page, limit) fun Route.findCitizen(voter: CitizenVoter, repo: CitizenRepository) { get { diff --git a/src/main/kotlin/component/comment/article/routes/GetArticleComments.kt b/src/main/kotlin/component/comment/article/routes/GetArticleComments.kt index 5b46ed2..0b01ece 100644 --- a/src/main/kotlin/component/comment/article/routes/GetArticleComments.kt +++ b/src/main/kotlin/component/comment/article/routes/GetArticleComments.kt @@ -4,6 +4,8 @@ import fr.dcproject.component.article.ArticleRef import fr.dcproject.component.auth.citizenOrNull import fr.dcproject.component.comment.article.CommentArticleRepository import fr.dcproject.component.comment.generic.CommentVoter +import fr.dcproject.routes.PaginatedRequest +import fr.dcproject.routes.PaginatedRequestI import fr.dcproject.voter.assert import io.ktor.application.call import io.ktor.http.HttpStatusCode @@ -22,9 +24,7 @@ object GetArticleComments { limit: Int = 50, val search: String? = null, sort: String = CommentArticleRepository.Sort.CREATED_AT.sql - ) { - val page: Int = if (page < 1) 1 else page - val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit + ) : PaginatedRequestI by PaginatedRequest(page, limit) { val sort: CommentArticleRepository.Sort = CommentArticleRepository.Sort.fromString(sort) ?: CommentArticleRepository.Sort.CREATED_AT } diff --git a/src/main/kotlin/component/comment/generic/routes/GetCommentChildren.kt b/src/main/kotlin/component/comment/generic/routes/GetCommentChildren.kt index f740341..d9b0716 100644 --- a/src/main/kotlin/component/comment/generic/routes/GetCommentChildren.kt +++ b/src/main/kotlin/component/comment/generic/routes/GetCommentChildren.kt @@ -3,6 +3,8 @@ package fr.dcproject.component.comment.generic.routes import fr.dcproject.component.auth.citizenOrNull import fr.dcproject.component.comment.generic.CommentRepository import fr.dcproject.component.comment.generic.CommentVoter +import fr.dcproject.routes.PaginatedRequest +import fr.dcproject.routes.PaginatedRequestI import fr.dcproject.voter.assert import io.ktor.application.call import io.ktor.http.HttpStatusCode @@ -21,10 +23,7 @@ object GetCommentChildren { page: Int = 1, limit: Int = 50, val search: String? = null - ) { - val page: Int = if (page < 1) 1 else page - val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit - } + ) : PaginatedRequestI by PaginatedRequest(page, limit) fun Route.getChildrenComments(repo: CommentRepository, voter: CommentVoter) { get {