feature #23: create route for citizen

This commit is contained in:
2019-08-15 15:59:46 +02:00
parent 9821833dd8
commit 7ae30bd3cd
7 changed files with 141 additions and 1 deletions

View File

@@ -0,0 +1,21 @@
package fr.dcproject.routes
import Paths
import io.ktor.application.call
import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.locations.get
import io.ktor.response.respond
import io.ktor.routing.Route
import fr.dcproject.repository.Citizen as CitizenRepository
@KtorExperimentalLocationsAPI
fun Route.citizen(repo: CitizenRepository) {
get<Paths.CitizensRequest> {
val citizens = repo.find(it.page, it.limit, it.sort, it.direction, it.search)
call.respond(citizens)
}
get<Paths.CitizenRequest> {
call.respond(it.citizen)
}
}

View File

@@ -1,4 +1,5 @@
import fr.dcproject.entity.Article
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.Constitution
import fr.dcproject.entity.Follow
import fr.postgresjson.repository.RepositoryI.Direction
@@ -22,4 +23,11 @@ object Paths {
}
@Location("/constitutions/{constitution}") class ConstitutionRequest(val constitution: Constitution)
@Location("/constitutions") class PostConstitutionRequest
@Location("/citizens") class CitizensRequest(page: Int = 1, limit: Int = 50, val sort: String? = null, val direction: 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
}
@Location("/citizens/{citizen}") class CitizenRequest(val citizen: Citizen)
}