package com.kmalbz.api.route import com.kmalbz.database.service.ISampleObjectService 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 import kotlinx.datetime.LocalDateTime import org.koin.ktor.ext.inject /** * Sample Service * * This is the sample interface of the Birbnetes system. */ class SampleServiceServer { /** * sample */ fun Routing.registerOutput() { val sampleObjectService:ISampleObjectService by inject() get("/sample"){ call.respond(sampleObjectService.getAllSampleObjects()) } get("/sample/count") { call.respond(sampleObjectService.getCount()) } get("/sample/page/{page}") { val page = call.parameters["page"] ?: error(HttpStatusCode.NotAcceptable) val pageNum = page.toLong() call.respond(sampleObjectService.getPage(pageNum)) } get("/sample/device/{device_id}") { val deviceId = call.parameters["device_id"] ?: error(HttpStatusCode.NotAcceptable) val deviceIdNum = deviceId.toInt() call.respond(sampleObjectService.getSampleObjectbyDeviceID(deviceIdNum)) } get("/sample/after/{dateAfter}") { val dateAfter = call.parameters["dateAfter"] ?: error(HttpStatusCode.NotAcceptable) val localDateAfter : LocalDateTime = LocalDateTime.parse(dateAfter) val resultList = sampleObjectService.getSampleObjectafterDate(localDateAfter) call.respond(resultList) } get("/sample/before/{dateBefore}") { val dateAfter = call.parameters["dateBefore"] ?: error(HttpStatusCode.NotAcceptable) val localDateBefore : LocalDateTime = LocalDateTime.parse(dateAfter) val resultList = sampleObjectService.getSampleObjectbeforeDate(localDateBefore) call.respond(resultList) } get("/sample/{tagID}") { val tagID = call.parameters["tagID"] ?: error(HttpStatusCode.NotAcceptable) val resultObject = sampleObjectService.getSampleObjectbyTag(tagID) ?: call.respond(HttpStatusCode.NotFound) call.respond(resultObject) } } }