forked from maiora/backend-api
senza parametri recupera tutta la lista, con il parametro implicito recupera solo l'id selezionato
42 lines
1.6 KiB
Kotlin
42 lines
1.6 KiB
Kotlin
package eu.maiora.routes
|
|
|
|
import eu.maiora.model.ViewEcommerceArticoliRepository
|
|
import eu.maiora.model.ViewEcommercePrezSconDisp
|
|
import eu.maiora.model.ViewEcommercePrezSconDispRepository
|
|
import eu.maiora.model.ViewEcommerceValoreUsatoRepository
|
|
import io.ktor.http.*
|
|
import io.ktor.server.application.*
|
|
import io.ktor.server.auth.*
|
|
import io.ktor.server.response.*
|
|
import io.ktor.server.routing.*
|
|
|
|
fun Route.viewEcommerceArticoli(viewEcommerceArticoliRepository: ViewEcommerceArticoliRepository){
|
|
route("/api/articoli"){
|
|
authenticate("auth-jwt") {
|
|
get("{id?}"){
|
|
// Ottieni l'id articolo dal percorso
|
|
val idArticolo = call.parameters["id"]
|
|
|
|
if(idArticolo != null){
|
|
val id = idArticolo.toLongOrNull()
|
|
if(id == null) {
|
|
call.respondText("ID articolo non valido", status = HttpStatusCode.BadRequest)
|
|
return@get
|
|
}
|
|
//restituisco il singolo articolo se disponibile
|
|
val articolo = viewEcommerceArticoliRepository.getArticoloById(idArticolo.toLong())
|
|
if(articolo == null){
|
|
call.respondText("Articolo non esistente", status = HttpStatusCode.NotFound)
|
|
return@get
|
|
}
|
|
call.respond(articolo)
|
|
}
|
|
else {
|
|
//restituisco la lista articoli completa
|
|
val articoli = viewEcommerceArticoliRepository.getListaArticoli()
|
|
call.respond(articoli)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |