forked from maiora/backend-api
0002358-endpoint-composizioni #5
@ -1,9 +1,6 @@
|
||||
package eu.maiora.db
|
||||
|
||||
import eu.maiora.model.Accounts
|
||||
import eu.maiora.model.Movimenti
|
||||
import eu.maiora.model.Parametri
|
||||
import eu.maiora.model.Tessere
|
||||
import eu.maiora.model.*
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import org.jetbrains.exposed.dao.IntEntity
|
||||
import org.jetbrains.exposed.dao.IntEntityClass
|
||||
@ -62,6 +59,15 @@ object MovimentiTable : IdTable<Long>("view_movimenti_api"){
|
||||
val puntiPost = integer("punti_post")
|
||||
}
|
||||
|
||||
object ComposizioniTable : IdTable<Long>("view_composizioni"){
|
||||
override val id = long("id").entityId()
|
||||
val idVassoio = long("id_vassoio")
|
||||
val vassoio = varchar("vassoio", 255)
|
||||
val idCategoria = long("id_categoria")
|
||||
val categoria = varchar("categoria", 255)
|
||||
val quantita = integer("quantita")
|
||||
}
|
||||
|
||||
class AccountsDAO(id: EntityID<Int>) :IntEntity(id) {
|
||||
companion object : IntEntityClass<AccountsDAO>(AccountsTable)
|
||||
|
||||
@ -104,6 +110,16 @@ class MovimentiDao(id: EntityID<Long>) :LongEntity(id) {
|
||||
var puntiPost by MovimentiTable.puntiPost
|
||||
}
|
||||
|
||||
class ComposizioniDao(id: EntityID<Long>) :LongEntity(id){
|
||||
companion object : LongEntityClass<ComposizioniDao>(ComposizioniTable)
|
||||
|
||||
var idVassoio by ComposizioniTable.idVassoio
|
||||
var vassoio by ComposizioniTable.vassoio
|
||||
var idCategoria by ComposizioniTable.idCategoria
|
||||
var categoria by ComposizioniTable.categoria
|
||||
var quantita by ComposizioniTable.quantita
|
||||
}
|
||||
|
||||
|
||||
fun accountsDaoToModel(dao: AccountsDAO) = Accounts(
|
||||
dao.id.value,
|
||||
@ -148,6 +164,15 @@ fun movimentiDaoToModel(dao: MovimentiDao) :Movimenti{
|
||||
)
|
||||
}
|
||||
|
||||
fun composizioniDaoToModel(dao: ComposizioniDao) =Composizioni(
|
||||
dao.id.value,
|
||||
dao.idVassoio,
|
||||
dao.vassoio,
|
||||
dao.idCategoria,
|
||||
dao.categoria,
|
||||
dao.quantita
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
13
src/main/kotlin/eu/maiora/model/Composizioni.kt
Normal file
13
src/main/kotlin/eu/maiora/model/Composizioni.kt
Normal file
@ -0,0 +1,13 @@
|
||||
package eu.maiora.model
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Composizioni(
|
||||
val id: Long,
|
||||
val idVassoio : Long,
|
||||
val vassoio : String,
|
||||
val idCategoria : Long,
|
||||
val categoria : String,
|
||||
val quantita : Int
|
||||
)
|
@ -0,0 +1,5 @@
|
||||
package eu.maiora.model
|
||||
|
||||
interface ComposizioniRepository {
|
||||
suspend fun listaComposizioni(): List<Composizioni>
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package eu.maiora.model
|
||||
|
||||
import eu.maiora.db.*
|
||||
import org.jetbrains.exposed.sql.SortOrder
|
||||
|
||||
class ComposizioniRepositoryImpl : ComposizioniRepository {
|
||||
override suspend fun listaComposizioni(): List<Composizioni> = suspendTransaction {
|
||||
// Cerca la lista di composizioni
|
||||
ComposizioniDao.all()
|
||||
.toList()
|
||||
.map { composizioniDaoToModel(it) } // Converte il DAO in un oggetto Composizioni
|
||||
|
||||
}
|
||||
}
|
@ -1,10 +1,8 @@
|
||||
package eu.maiora.plugins
|
||||
|
||||
import eu.maiora.model.AccountsRepositoryImpl
|
||||
import eu.maiora.model.MovimentiRepositoryImpl
|
||||
import eu.maiora.model.ParametriRepositoryImpl
|
||||
import eu.maiora.model.TessereRepositoryImpl
|
||||
import eu.maiora.model.*
|
||||
import eu.maiora.routes.auth
|
||||
import eu.maiora.routes.composizioni
|
||||
import eu.maiora.routes.movimenti
|
||||
import eu.maiora.routes.tessere
|
||||
import io.ktor.server.application.*
|
||||
@ -20,5 +18,6 @@ fun Application.configureRouting() {
|
||||
auth(AccountsRepositoryImpl())
|
||||
tessere(TessereRepositoryImpl())
|
||||
movimenti(MovimentiRepositoryImpl())
|
||||
composizioni(ComposizioniRepositoryImpl())
|
||||
}
|
||||
}
|
||||
|
20
src/main/kotlin/eu/maiora/routes/Composizioni.kt
Normal file
20
src/main/kotlin/eu/maiora/routes/Composizioni.kt
Normal file
@ -0,0 +1,20 @@
|
||||
package eu.maiora.routes
|
||||
|
||||
import eu.maiora.model.ComposizioniRepositoryImpl
|
||||
import io.ktor.server.application.*
|
||||
import io.ktor.server.auth.*
|
||||
import io.ktor.server.response.*
|
||||
import io.ktor.server.routing.*
|
||||
|
||||
|
||||
fun Route.composizioni(composizioniRepository: ComposizioniRepositoryImpl){
|
||||
route("/api/composizioni"){
|
||||
authenticate("auth-jwt") {
|
||||
get(){
|
||||
val listaComposizioni = composizioniRepository.listaComposizioni()
|
||||
call.respond(listaComposizioni)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user