diff --git a/src/api/model/ApiObject.kt b/src/api/model/ApiObject.kt index 14ddbd8..1a68a0a 100644 --- a/src/api/model/ApiObject.kt +++ b/src/api/model/ApiObject.kt @@ -5,7 +5,5 @@ import java.time.LocalDate data class ApiObject( @SerializedName("tag") val tag: String, - @SerializedName("date") val date: LocalDate, - @SerializedName("decision") val decision: Boolean, - @SerializedName("confidence") val confidence: Double + @SerializedName("probability") val probability: Double ) \ No newline at end of file diff --git a/src/api/route/OutputServiceRDBServer.kt b/src/api/route/OutputServiceRDBServer.kt index ea15c4b..d5a302c 100644 --- a/src/api/route/OutputServiceRDBServer.kt +++ b/src/api/route/OutputServiceRDBServer.kt @@ -24,13 +24,19 @@ class OutputServiceRDBServer() { } get("/output/filter/negative") { - val resultList = resultObjectService.getResultObjectbyDecision(false) ?: call.respond(HttpStatusCode.NotFound) + val resultList = resultObjectService.getResultObjecLessthanProbability(0.5) ?: call.respond(HttpStatusCode.NotFound) call.respond(resultList) } get("/output/filter/positive") { - val resultList = resultObjectService.getResultObjectbyDecision(true) ?: 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) call.respond(resultList) } diff --git a/src/database/dao/ResultObjects.kt b/src/database/dao/ResultObjects.kt index 49ac8b7..b27397f 100644 --- a/src/database/dao/ResultObjects.kt +++ b/src/database/dao/ResultObjects.kt @@ -7,8 +7,7 @@ import java.time.LocalDate object ResultObjects : IntIdTable() { val tag: Column = varchar("tag",32) - val date: Column = date("date") - val decision: Column = bool("decision") - val confidence: Column = double("confidence") + val date: Column = date("date").default(LocalDate.now()) + val probability: Column = double("probability") override val primaryKey = PrimaryKey(id, name = "PK_ResultObject_Id") } \ No newline at end of file diff --git a/src/database/model/ResultObject.kt b/src/database/model/ResultObject.kt index 923ea51..9ef4310 100644 --- a/src/database/model/ResultObject.kt +++ b/src/database/model/ResultObject.kt @@ -8,7 +8,6 @@ import org.jetbrains.exposed.dao.id.EntityID class ResultObject(id: EntityID): IntEntity(id) { companion object : IntEntityClass(ResultObjects) var tag by ResultObjects.tag - var date by ResultObjects.tag - var decision by ResultObjects.decision - var confidence by ResultObjects.confidence + var date by ResultObjects.date + var probability by ResultObjects.probability } \ No newline at end of file diff --git a/src/database/service/ResultObjectService.kt b/src/database/service/ResultObjectService.kt index 303d75b..b328992 100644 --- a/src/database/service/ResultObjectService.kt +++ b/src/database/service/ResultObjectService.kt @@ -17,9 +17,7 @@ class ResultObjectService { transaction { ResultObject.new { tag = apiObject.tag - date = apiObject.date.toString() - decision = apiObject.decision - confidence = apiObject.confidence + probability = apiObject.probability } } } @@ -53,17 +51,27 @@ class ResultObjectService { }.mapNotNull { toResultObject(it) } } - suspend fun getResultObjectbyDecision(decision: Boolean): List? = dbQuery { + suspend fun getResultObjecGreaterthanProbability(probability: Double): List? = dbQuery { ResultObjects.select { - (ResultObjects.decision eq decision) + (ResultObjects.probability greater probability) + }.mapNotNull { toResultObject(it) } + } + + suspend fun getResultObjecLessthanProbability(probability: Double): List? = dbQuery { + ResultObjects.select { + (ResultObjects.probability less probability) + }.mapNotNull { toResultObject(it) } + } + + suspend fun getResultObjecEqualsProbability(probability: Double): List? = dbQuery { + ResultObjects.select { + (ResultObjects.probability eq probability) }.mapNotNull { toResultObject(it) } } private fun toResultObject(row: ResultRow): ApiObject = ApiObject( tag = row[ResultObjects.tag], - date = row[ResultObjects.date], - decision = row[ResultObjects.decision], - confidence = row[ResultObjects.confidence] + probability = row[ResultObjects.probability] ) } \ No newline at end of file