package com.kmalbz.database.service import com.kmalbz.database.DatabaseFactory.dbQuery import com.kmalbz.database.model.InputObject import com.kmalbz.database.dao.InputObjects import com.kmalbz.api.model.ApiObject import org.jetbrains.exposed.sql.ResultRow import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.transactions.transaction import java.util.* class InputObjectService : IInputObjectService { override fun addOne(apiObject: ApiObject) { transaction { InputObject.new { tag = apiObject.tag device_id = apiObject.device_id } } } override suspend fun getAllInputObjects(): List = dbQuery { InputObjects.selectAll().map { toInputObject(it) } } override suspend fun getInputObjectbyTag(tag: UUID): ApiObject? = dbQuery { InputObjects.select { (InputObjects.tag eq tag) }.mapNotNull { toInputObject(it) } .singleOrNull() } private fun toInputObject(row: ResultRow): ApiObject = ApiObject( tag = row[InputObjects.tag], date = row[InputObjects.date], device_id = row[InputObjects.device_id] ) }