forked from maiora/backend-api
aggiunta parametro idModalita
restituire il nome della residenza se la modalità di prenotazione è delivery
This commit is contained in:
parent
0c63926fff
commit
42216f02c0
@ -479,10 +479,20 @@ fun composizioniDaoToModel(dao: ComposizioniDao) = Composizioni(
|
||||
)
|
||||
|
||||
fun puntiDistribuzioneDaoToModel(dao: SlotPrenotabiliDao): PuntiDistribuzione {
|
||||
//se la modalità è delivery, mostrare il nome della residenza e non del punto di distribuzione
|
||||
var nomePdApp: String
|
||||
if(dao.idModalita == 3L){
|
||||
nomePdApp = dao.residenza.toString()
|
||||
}
|
||||
else{
|
||||
nomePdApp = dao.puntoDistribuzione
|
||||
}
|
||||
|
||||
|
||||
return PuntiDistribuzione(
|
||||
dao.id.value,
|
||||
dao.idPuntoDistribuzione,
|
||||
dao.puntoDistribuzione,
|
||||
nomePdApp,
|
||||
dao.idPuntoCassa,
|
||||
dao.puntoCassa,
|
||||
dao.idModalita,
|
||||
|
@ -1,5 +1,5 @@
|
||||
package eu.maiora.model
|
||||
|
||||
interface PuntiDistribuzioneRepository {
|
||||
suspend fun puntiDistByGiornoIdTurno(giorno : String, idTurno : Long): List<PuntiDistribuzione>?
|
||||
suspend fun puntiDistByGiornoIdTurnoIdModalita(giorno : String, idTurno : Long, idModalita : Long): List<PuntiDistribuzione>?
|
||||
}
|
@ -8,12 +8,14 @@ import java.time.LocalDateTime
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
class PuntiDistribuzioneRepositoryImpl : PuntiDistribuzioneRepository {
|
||||
override suspend fun puntiDistByGiornoIdTurno(giorno : String, idTurno : Long): List<PuntiDistribuzione> = suspendTransaction {
|
||||
override suspend fun puntiDistByGiornoIdTurnoIdModalita(giorno : String, idTurno : Long, idModalita : Long): List<PuntiDistribuzione> = suspendTransaction {
|
||||
// Cerca la lista di punti distribuzione dalla tabella degli slot prenotabili
|
||||
val formatter = DateTimeFormatter.ofPattern("ddMMyyyy")
|
||||
val formattedDate = LocalDate.parse(giorno, formatter)
|
||||
|
||||
SlotPrenotabiliDao.find { (SlotPrenotabiliTable.giorno eq formattedDate) and (SlotPrenotabiliTable.idTurno eq idTurno)}
|
||||
SlotPrenotabiliDao.find { (SlotPrenotabiliTable.giorno eq formattedDate) and
|
||||
(SlotPrenotabiliTable.idTurno eq idTurno) and
|
||||
(SlotPrenotabiliTable.idModalita eq idModalita)}
|
||||
.toList() // Restituisce la lista degli slot prenotabili da cui ricavare i punti distribuzione
|
||||
.map { puntiDistribuzioneDaoToModel(it) } // Converte il DAO in un oggetto PuntiDistribuzione
|
||||
|
||||
|
@ -15,21 +15,27 @@ fun Route.puntiDistribuzione(puntiDistribuzioneRepository: PuntiDistribuzioneRep
|
||||
// Ottieni l'id del turno e il giorno dal percorso
|
||||
val idTurno = call.parameters["idTurno"]
|
||||
val giorno = call.parameters["giorno"]
|
||||
val idModalita = call.parameters["idModalita"]
|
||||
|
||||
|
||||
if (idTurno.isNullOrEmpty()) {
|
||||
call.respondText("ID turno non valido o non presente nei parametri", status = HttpStatusCode.BadRequest)
|
||||
return@get
|
||||
}
|
||||
if (idModalita.isNullOrEmpty()) {
|
||||
call.respondText("ID modalita non valido o non presente nei parametri", status = HttpStatusCode.BadRequest)
|
||||
return@get
|
||||
}
|
||||
if (giorno.isNullOrEmpty()) {
|
||||
call.respondText("Giorno non valido o non presente nei parametri", status = HttpStatusCode.BadRequest)
|
||||
return@get
|
||||
}
|
||||
|
||||
// Cerca i punti distribuzione per giorno e turno
|
||||
val listaPuntiDistribuzione = puntiDistribuzioneRepository.puntiDistByGiornoIdTurno(giorno, idTurno.toLong())
|
||||
val listaPuntiDistribuzione = puntiDistribuzioneRepository.puntiDistByGiornoIdTurnoIdModalita(giorno, idTurno.toLong(), idModalita.toLong())
|
||||
|
||||
|
||||
if (listaPuntiDistribuzione != null) {
|
||||
if (listaPuntiDistribuzione.isNotEmpty()) {
|
||||
call.respond(listaPuntiDistribuzione)
|
||||
} else {
|
||||
call.respondText("Punti distribuzione non trovati", status = HttpStatusCode.NotFound)
|
||||
|
Loading…
Reference in New Issue
Block a user