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

@@ -7,8 +7,10 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategy
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.joda.JodaModule
import fr.dcproject.entity.Article
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.Constitution
import fr.dcproject.routes.article
import fr.dcproject.routes.citizen
import fr.dcproject.routes.constitution
import fr.dcproject.routes.followArticle
import fr.postgresjson.migration.Migrations
@@ -30,6 +32,7 @@ import org.koin.ktor.ext.get
import org.slf4j.event.Level
import java.util.*
import fr.dcproject.repository.Article as RepositoryArticle
import fr.dcproject.repository.Citizen as RepositoryCitizen
import fr.dcproject.repository.Constitution as RepositoryConstitution
fun main(args: Array<String>): Unit = io.ktor.server.jetty.EngineMain.main(args)
@@ -63,7 +66,7 @@ fun Application.module() {
}
}
// create generic convert for entityI
// TODO: create generic convert for entityI
convert<Article> {
decode { values, _ ->
val id = values.singleOrNull()?.let { UUID.fromString(it) }
@@ -71,6 +74,7 @@ fun Application.module() {
get<RepositoryArticle>().findById(id) ?: throw InternalError("Article $values not found")
}
}
convert<Constitution> {
decode { values, _ ->
val id = values.singleOrNull()?.let { UUID.fromString(it) }
@@ -78,6 +82,14 @@ fun Application.module() {
get<RepositoryConstitution>().findById(id) ?: throw InternalError("Constitution $values not found")
}
}
convert<Citizen> {
decode { values, _ ->
val id = values.singleOrNull()?.let { UUID.fromString(it) }
?: throw InternalError("Cannot convert $values to UUID")
get<RepositoryCitizen>().findById(id) ?: throw InternalError("Citizen $values not found")
}
}
}
install(Locations) {
@@ -106,6 +118,7 @@ fun Application.module() {
install(Routing) {
article(get())
citizen(get())
constitution(get())
followArticle(get())
}