forked from maiora/backend-api
0002358-endpoint-composizioni #5
@ -1,9 +1,6 @@
|
|||||||
package eu.maiora.db
|
package eu.maiora.db
|
||||||
|
|
||||||
import eu.maiora.model.Accounts
|
import eu.maiora.model.*
|
||||||
import eu.maiora.model.Movimenti
|
|
||||||
import eu.maiora.model.Parametri
|
|
||||||
import eu.maiora.model.Tessere
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import org.jetbrains.exposed.dao.IntEntity
|
import org.jetbrains.exposed.dao.IntEntity
|
||||||
import org.jetbrains.exposed.dao.IntEntityClass
|
import org.jetbrains.exposed.dao.IntEntityClass
|
||||||
@ -62,6 +59,15 @@ object MovimentiTable : IdTable<Long>("view_movimenti_api"){
|
|||||||
val puntiPost = integer("punti_post")
|
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) {
|
class AccountsDAO(id: EntityID<Int>) :IntEntity(id) {
|
||||||
companion object : IntEntityClass<AccountsDAO>(AccountsTable)
|
companion object : IntEntityClass<AccountsDAO>(AccountsTable)
|
||||||
|
|
||||||
@ -104,6 +110,16 @@ class MovimentiDao(id: EntityID<Long>) :LongEntity(id) {
|
|||||||
var puntiPost by MovimentiTable.puntiPost
|
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(
|
fun accountsDaoToModel(dao: AccountsDAO) = Accounts(
|
||||||
dao.id.value,
|
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
|
package eu.maiora.plugins
|
||||||
|
|
||||||
import eu.maiora.model.AccountsRepositoryImpl
|
import eu.maiora.model.*
|
||||||
import eu.maiora.model.MovimentiRepositoryImpl
|
|
||||||
import eu.maiora.model.ParametriRepositoryImpl
|
|
||||||
import eu.maiora.model.TessereRepositoryImpl
|
|
||||||
import eu.maiora.routes.auth
|
import eu.maiora.routes.auth
|
||||||
|
import eu.maiora.routes.composizioni
|
||||||
import eu.maiora.routes.movimenti
|
import eu.maiora.routes.movimenti
|
||||||
import eu.maiora.routes.tessere
|
import eu.maiora.routes.tessere
|
||||||
import io.ktor.server.application.*
|
import io.ktor.server.application.*
|
||||||
@ -20,5 +18,6 @@ fun Application.configureRouting() {
|
|||||||
auth(AccountsRepositoryImpl())
|
auth(AccountsRepositoryImpl())
|
||||||
tessere(TessereRepositoryImpl())
|
tessere(TessereRepositoryImpl())
|
||||||
movimenti(MovimentiRepositoryImpl())
|
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