output-service-rdb/src/api/route/OutputServiceRDBServer.kt

86 lines
2.6 KiB
Kotlin
Raw Normal View History

package com.kmalbz.api.route
2020-04-04 18:47:24 +02:00
2020-05-20 17:06:15 +02:00
import com.kmalbz.database.service.IResultObjectService
import io.ktor.application.call
import io.ktor.http.HttpStatusCode
import io.ktor.response.respond
import io.ktor.routing.Routing
import io.ktor.routing.get
2021-08-18 16:44:29 +02:00
import kotlinx.datetime.LocalDateTime
2020-05-20 17:06:15 +02:00
import org.koin.ktor.ext.inject
2021-08-18 16:44:29 +02:00
2020-04-04 18:47:24 +02:00
/**
* Output Service - RDB
2021-08-17 15:34:49 +02:00
*
2020-04-04 18:47:24 +02:00
* This is the output interface of the Birbnetes system.
*/
2020-05-20 14:59:08 +02:00
class OutputServiceRDBServer {
2020-04-04 18:47:24 +02:00
/**
* output
*/
2021-08-17 15:34:49 +02:00
2020-04-04 18:47:24 +02:00
fun Routing.registerOutput() {
2021-08-17 15:34:49 +02:00
val resultObjectService: IResultObjectService by inject()
get("/output") {
2020-04-05 11:14:02 +02:00
call.respond(resultObjectService.getAllResultObjects())
}
2021-08-17 15:34:49 +02:00
get("/output/count") {
2021-08-17 16:09:10 +02:00
call.respond(resultObjectService.getCount())
2021-08-17 15:34:49 +02:00
}
get("/output/page/{page}") {
val page = call.parameters["page"] ?: error(HttpStatusCode.NotAcceptable)
2021-08-17 15:57:58 +02:00
val pageNum = page.toLong()
call.respond(resultObjectService.getPage(pageNum))
2021-08-17 15:34:49 +02:00
}
2020-04-04 18:47:24 +02:00
get("/output/filter/negative") {
2021-08-17 15:34:49 +02:00
val resultList =
2021-08-18 16:44:29 +02:00
resultObjectService.getResultObjecLessthanProbability(0.5)
2020-04-04 18:47:24 +02:00
2020-04-05 11:14:02 +02:00
call.respond(resultList)
2020-04-04 18:47:24 +02:00
}
get("/output/filter/positive") {
2021-08-17 15:34:49 +02:00
val resultList =
2021-08-18 16:44:29 +02:00
resultObjectService.getResultObjecGreaterthanProbability(0.5)
2020-04-08 03:09:24 +02:00
call.respond(resultList)
}
get("/output/filter/undecided") {
2021-08-17 15:34:49 +02:00
val resultList =
2021-08-18 16:44:29 +02:00
resultObjectService.getResultObjecEqualsProbability(0.5)
2020-04-04 18:47:24 +02:00
2020-04-05 11:14:02 +02:00
call.respond(resultList)
2020-04-04 18:47:24 +02:00
}
get("/output/after/{dateAfter}") {
2020-04-05 11:14:02 +02:00
val dateAfter = call.parameters["dateAfter"] ?: error(HttpStatusCode.NotAcceptable)
2021-08-18 16:44:29 +02:00
val localDateAfter: LocalDateTime = LocalDateTime.parse(dateAfter)
2021-08-17 15:34:49 +02:00
val resultList =
2021-08-18 16:44:29 +02:00
resultObjectService.getResultObjectafterDate(localDateAfter)
2020-04-04 18:47:24 +02:00
2020-04-05 11:14:02 +02:00
call.respond(resultList)
2020-04-04 18:47:24 +02:00
}
get("/output/before/{dateBefore}") {
2020-04-05 11:14:02 +02:00
val dateAfter = call.parameters["dateBefore"] ?: error(HttpStatusCode.NotAcceptable)
2021-08-18 16:44:29 +02:00
val localDateBefore: LocalDateTime = LocalDateTime.parse(dateAfter)
2021-08-17 15:34:49 +02:00
val resultList =
2021-08-18 16:44:29 +02:00
resultObjectService.getResultObjectbeforeDate(localDateBefore)
2020-04-04 18:47:24 +02:00
2020-04-05 11:14:02 +02:00
call.respond(resultList)
2020-04-04 18:47:24 +02:00
}
get("/output/{tagID}") {
2020-04-05 11:14:02 +02:00
val tagID = call.parameters["tagID"] ?: error(HttpStatusCode.NotAcceptable)
2020-05-29 13:27:53 +02:00
val resultObject = resultObjectService.getResultObjectbyTag(tagID) ?: call.respond(HttpStatusCode.NotFound)
2020-04-04 18:47:24 +02:00
2020-04-05 11:14:02 +02:00
call.respond(resultObject)
2020-04-04 18:47:24 +02:00
}
}
}