package com.kmalbz.api.route import io.ktor.application.* import io.ktor.response.* import io.ktor.routing.* import io.ktor.http.* import com.kmalbz.database.service.ResultObjectService import java.time.LocalDate import java.time.format.DateTimeFormatter /** * Output Service - RDB * * This is the output interface of the Birbnetes system. */ class OutputServiceRDBServer() { /** * output */ private val resultObjectService = ResultObjectService() fun Routing.registerOutput() { get("/output"){ call.respond(resultObjectService.getAllResultObjects()) } get("/output/filter/negative") { val resultList = resultObjectService.getResultObjectbyDecision(false) ?: error(HttpStatusCode.NotFound) call.respond(resultList) } get("/output/filter/positive") { val resultList = resultObjectService.getResultObjectbyDecision(true) ?: error(HttpStatusCode.NotFound) call.respond(resultList) } 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.getResultObjectbeforeDate(localDateAfter) ?: error(HttpStatusCode.NotFound) call.respond(resultList) } 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.getResultObjectafterDate(localDateBefore) ?: error(HttpStatusCode.NotFound) call.respond(resultList) } get("/output/{tagID}") { val tagID = call.parameters["tagID"] ?: error(HttpStatusCode.NotAcceptable) val resultObject = resultObjectService.getResultObjectbyTag(tagID) ?: error(HttpStatusCode.NotFound) call.respond(resultObject) } } }