forked from maiora/backend-api
Compare commits
2 Commits
025f45b972
...
3e0ae28708
Author | SHA1 | Date | |
---|---|---|---|
3e0ae28708 | |||
529087dd98 |
@ -47,7 +47,7 @@ fun Application.module(configFile: Properties) {
|
|||||||
|
|
||||||
fun loadConfig(): Properties {
|
fun loadConfig(): Properties {
|
||||||
val properties = Properties()
|
val properties = Properties()
|
||||||
val inputStream = FileInputStream("/home/backend_api/config.properties")
|
val inputStream = FileInputStream("/home/ristocloudadm/config.properties")
|
||||||
properties.load(inputStream)
|
properties.load(inputStream)
|
||||||
return properties
|
return properties
|
||||||
}
|
}
|
||||||
|
@ -68,6 +68,14 @@ object ComposizioniTable : IdTable<Long>("view_composizioni"){
|
|||||||
val quantita = integer("quantita")
|
val quantita = integer("quantita")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object RicaricheTable : IdTable<Long>("ricariche_app"){
|
||||||
|
override val id = long("id").autoIncrement("seq_ricariche_app").entityId()
|
||||||
|
val codiceTransazione = varchar("codice_transazione", 255)
|
||||||
|
val messaggio = varchar("messaggio", 255).nullable()
|
||||||
|
val idTessera = long("id_tessera")
|
||||||
|
val importo = double("importo")
|
||||||
|
}
|
||||||
|
|
||||||
class AccountsDAO(id: EntityID<Int>) :IntEntity(id) {
|
class AccountsDAO(id: EntityID<Int>) :IntEntity(id) {
|
||||||
companion object : IntEntityClass<AccountsDAO>(AccountsTable)
|
companion object : IntEntityClass<AccountsDAO>(AccountsTable)
|
||||||
|
|
||||||
@ -120,6 +128,15 @@ class ComposizioniDao(id: EntityID<Long>) :LongEntity(id){
|
|||||||
var quantita by ComposizioniTable.quantita
|
var quantita by ComposizioniTable.quantita
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class RicaricheDao(id: EntityID<Long>) :LongEntity(id){
|
||||||
|
companion object : LongEntityClass<RicaricheDao>(RicaricheTable)
|
||||||
|
|
||||||
|
var codiceTransazione by RicaricheTable.codiceTransazione
|
||||||
|
var messaggio by RicaricheTable.messaggio
|
||||||
|
var idTessera by RicaricheTable.idTessera
|
||||||
|
var importo by RicaricheTable.importo
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
fun accountsDaoToModel(dao: AccountsDAO) = Accounts(
|
fun accountsDaoToModel(dao: AccountsDAO) = Accounts(
|
||||||
dao.id.value,
|
dao.id.value,
|
||||||
@ -164,7 +181,7 @@ fun movimentiDaoToModel(dao: MovimentiDao) :Movimenti{
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun composizioniDaoToModel(dao: ComposizioniDao) =Composizioni(
|
fun composizioniDaoToModel(dao: ComposizioniDao) = Composizioni(
|
||||||
dao.id.value,
|
dao.id.value,
|
||||||
dao.idVassoio,
|
dao.idVassoio,
|
||||||
dao.vassoio,
|
dao.vassoio,
|
||||||
@ -174,8 +191,5 @@ fun composizioniDaoToModel(dao: ComposizioniDao) =Composizioni(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
suspend fun <T> suspendTransaction(block: Transaction.() -> T): T =
|
suspend fun <T> suspendTransaction(block: Transaction.() -> T): T =
|
||||||
newSuspendedTransaction(Dispatchers.IO, statement = block)
|
newSuspendedTransaction(Dispatchers.IO, statement = block)
|
12
src/main/kotlin/eu/maiora/model/Ricariche.kt
Normal file
12
src/main/kotlin/eu/maiora/model/Ricariche.kt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package eu.maiora.model
|
||||||
|
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class Ricariche(
|
||||||
|
val id : Long? = null,
|
||||||
|
val codiceTransazione : String,
|
||||||
|
val messaggio : String? = null,
|
||||||
|
val idTessera : Long,
|
||||||
|
val importo : Double
|
||||||
|
)
|
5
src/main/kotlin/eu/maiora/model/RicaricheRepository.kt
Normal file
5
src/main/kotlin/eu/maiora/model/RicaricheRepository.kt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package eu.maiora.model
|
||||||
|
|
||||||
|
interface RicaricheRepository {
|
||||||
|
suspend fun insert(ricarica : Ricariche): Ricariche
|
||||||
|
}
|
26
src/main/kotlin/eu/maiora/model/RicaricheRepositoryImpl.kt
Normal file
26
src/main/kotlin/eu/maiora/model/RicaricheRepositoryImpl.kt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package eu.maiora.model
|
||||||
|
|
||||||
|
import eu.maiora.db.*
|
||||||
|
import org.jetbrains.exposed.sql.insert
|
||||||
|
import org.jetbrains.exposed.sql.insertAndGetId
|
||||||
|
|
||||||
|
class RicaricheRepositoryImpl : RicaricheRepository {
|
||||||
|
override suspend fun insert(ricarica : Ricariche): Ricariche = suspendTransaction {
|
||||||
|
// Inserisci una nuova ricarica
|
||||||
|
// ID non definito: viene gestito dalla sequence
|
||||||
|
val idRicaricaInserted = RicaricheTable.insertAndGetId {
|
||||||
|
it[codiceTransazione] = ricarica.codiceTransazione
|
||||||
|
it[messaggio] = ricarica.messaggio
|
||||||
|
it[idTessera] = ricarica.idTessera
|
||||||
|
it[importo] = ricarica.importo
|
||||||
|
}.value
|
||||||
|
|
||||||
|
Ricariche(
|
||||||
|
idRicaricaInserted,
|
||||||
|
ricarica.codiceTransazione,
|
||||||
|
ricarica.messaggio,
|
||||||
|
ricarica.idTessera,
|
||||||
|
ricarica.importo
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
@ -1,11 +1,7 @@
|
|||||||
package eu.maiora.plugins
|
package eu.maiora.plugins
|
||||||
|
|
||||||
import eu.maiora.model.*
|
import eu.maiora.model.*
|
||||||
import eu.maiora.routes.auth
|
import eu.maiora.routes.*
|
||||||
import eu.maiora.routes.composizioni
|
|
||||||
import eu.maiora.routes.movimenti
|
|
||||||
import eu.maiora.routes.tessere
|
|
||||||
import eu.maiora.routes.valorePasti
|
|
||||||
import io.ktor.server.application.*
|
import io.ktor.server.application.*
|
||||||
import io.ktor.server.response.*
|
import io.ktor.server.response.*
|
||||||
import io.ktor.server.routing.*
|
import io.ktor.server.routing.*
|
||||||
@ -21,5 +17,6 @@ fun Application.configureRouting() {
|
|||||||
movimenti(MovimentiRepositoryImpl())
|
movimenti(MovimentiRepositoryImpl())
|
||||||
composizioni(ComposizioniRepositoryImpl())
|
composizioni(ComposizioniRepositoryImpl())
|
||||||
valorePasti(ValorePastiRepositoryImpl())
|
valorePasti(ValorePastiRepositoryImpl())
|
||||||
|
ricariche(RicaricheRepositoryImpl())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
43
src/main/kotlin/eu/maiora/routes/Ricariche.kt
Normal file
43
src/main/kotlin/eu/maiora/routes/Ricariche.kt
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
package eu.maiora.routes
|
||||||
|
|
||||||
|
import eu.maiora.model.*
|
||||||
|
import io.ktor.http.*
|
||||||
|
import io.ktor.server.application.*
|
||||||
|
import io.ktor.server.auth.*
|
||||||
|
import io.ktor.server.request.*
|
||||||
|
import io.ktor.server.response.*
|
||||||
|
import io.ktor.server.routing.*
|
||||||
|
|
||||||
|
|
||||||
|
fun Route.ricariche(ricaricheRepository: RicaricheRepository){
|
||||||
|
route("/api/ricariche"){
|
||||||
|
authenticate("auth-jwt") {
|
||||||
|
post(){
|
||||||
|
try{
|
||||||
|
val ricaricaRequest = call.receive<Ricariche>()
|
||||||
|
|
||||||
|
//solo per il codiceTransazione (String) è necessario controllare se è vuoto
|
||||||
|
if(ricaricaRequest.codiceTransazione.isBlank()){
|
||||||
|
call.respond(
|
||||||
|
HttpStatusCode.BadRequest,
|
||||||
|
"Errore nel processare la richiesta: codiceTransazione vuoto"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inserisci la ricarica nel database
|
||||||
|
val ricaricaInserita = ricaricheRepository.insert(ricaricaRequest)
|
||||||
|
|
||||||
|
// Rispondi con l'oggetto Ricariche, che include l'ID generato
|
||||||
|
call.respond(HttpStatusCode.Created, ricaricaInserita)
|
||||||
|
}
|
||||||
|
catch (e: Exception){
|
||||||
|
call.respond(
|
||||||
|
HttpStatusCode.BadRequest,
|
||||||
|
"Errore nel processare la richiesta: ${e.cause}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user