From 5f2d88d3d2224a8267a042aafe42c1bd17a352cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Tue, 17 Aug 2021 15:34:49 +0200 Subject: [PATCH] pajeet nation --- src/api/route/OutputServiceRDBServer.kt | 48 +++++++++++++++++++------ 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/src/api/route/OutputServiceRDBServer.kt b/src/api/route/OutputServiceRDBServer.kt index 2e81902..f444a27 100644 --- a/src/api/route/OutputServiceRDBServer.kt +++ b/src/api/route/OutputServiceRDBServer.kt @@ -9,36 +9,62 @@ import io.ktor.routing.get import org.koin.ktor.ext.inject import java.time.LocalDate import java.time.format.DateTimeFormatter +import kotlin.math.ceil +import kotlin.math.roundToInt /** * Output Service - RDB - * + * * This is the output interface of the Birbnetes system. */ class OutputServiceRDBServer { /** * output */ + fun Routing.registerOutput() { - val resultObjectService:IResultObjectService by inject() - get("/output"){ + val resultObjectService: IResultObjectService by inject() + get("/output") { call.respond(resultObjectService.getAllResultObjects()) } + get("/output/count") { + call.respond(resultObjectService.getAllResultObjects().size) + } + + get("/output/page/{page}") { + val page = call.parameters["page"] ?: error(HttpStatusCode.NotAcceptable) + val pageNum = page.toInt() + val results = resultObjectService.getAllResultObjects() + val maxPageNum = ceil(results.size / 10.0).roundToInt() - 1 + if (pageNum == 0) { + call.respond(results.subList(0, 10)) + } else { + if (pageNum == maxPageNum) { + call.respond(results.subList((pageNum * 10) + 1, results.size)) + } else { + call.respond(results.subList((pageNum * 10) + 1, (pageNum * 10) + 10)) + } + } + } + get("/output/filter/negative") { - val resultList = resultObjectService.getResultObjecLessthanProbability(0.5) ?: call.respond(HttpStatusCode.NotFound) + val resultList = + resultObjectService.getResultObjecLessthanProbability(0.5) ?: call.respond(HttpStatusCode.NotFound) call.respond(resultList) } get("/output/filter/positive") { - val resultList = resultObjectService.getResultObjecGreaterthanProbability(0.5) ?: call.respond(HttpStatusCode.NotFound) + val resultList = + resultObjectService.getResultObjecGreaterthanProbability(0.5) ?: call.respond(HttpStatusCode.NotFound) call.respond(resultList) } get("/output/filter/undecided") { - val resultList = resultObjectService.getResultObjecEqualsProbability(0.5) ?: call.respond(HttpStatusCode.NotFound) + val resultList = + resultObjectService.getResultObjecEqualsProbability(0.5) ?: call.respond(HttpStatusCode.NotFound) call.respond(resultList) } @@ -46,8 +72,9 @@ class OutputServiceRDBServer { get("/output/after/{dateAfter}") { val dateAfter = call.parameters["dateAfter"] ?: error(HttpStatusCode.NotAcceptable) val dateTimeFormatter: DateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE - val localDateAfter : LocalDate = LocalDate.parse(dateAfter,dateTimeFormatter) - val resultList = resultObjectService.getResultObjectafterDate(localDateAfter) ?: call.respond(HttpStatusCode.NotFound) + val localDateAfter: LocalDate = LocalDate.parse(dateAfter, dateTimeFormatter) + val resultList = + resultObjectService.getResultObjectafterDate(localDateAfter) ?: call.respond(HttpStatusCode.NotFound) call.respond(resultList) } @@ -55,8 +82,9 @@ class OutputServiceRDBServer { get("/output/before/{dateBefore}") { val dateAfter = call.parameters["dateBefore"] ?: error(HttpStatusCode.NotAcceptable) val dateTimeFormatter: DateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE - val localDateBefore : LocalDate = LocalDate.parse(dateAfter,dateTimeFormatter) - val resultList = resultObjectService.getResultObjectbeforeDate(localDateBefore) ?: call.respond(HttpStatusCode.NotFound) + val localDateBefore: LocalDate = LocalDate.parse(dateAfter, dateTimeFormatter) + val resultList = + resultObjectService.getResultObjectbeforeDate(localDateBefore) ?: call.respond(HttpStatusCode.NotFound) call.respond(resultList) }