diff --git a/settings.gradle.kts b/settings.gradle.kts index e2d0939..5eceafc 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,5 @@ plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0" } -rootProject.name = "Backend_API" +rootProject.name = "Backend_API_DSU" diff --git a/src/main/kotlin/eu/maiora/db/Mapping.kt b/src/main/kotlin/eu/maiora/db/Mapping.kt index 2a021fa..3a60fcf 100644 --- a/src/main/kotlin/eu/maiora/db/Mapping.kt +++ b/src/main/kotlin/eu/maiora/db/Mapping.kt @@ -28,7 +28,7 @@ object ParametriTable : IdTable("parametri"){ override val primaryKey = PrimaryKey(id) } -object TessereTable : IdTable("tessere"){ +object TessereTable : IdTable("view_tessere_api"){ override val id = integer("id").entityId() val idUtente = integer("id_utente") val codiceFiscale = varchar("codice_fiscale", 255) diff --git a/src/main/kotlin/eu/maiora/plugins/Routing.kt b/src/main/kotlin/eu/maiora/plugins/Routing.kt index abfd7e4..5430fb7 100644 --- a/src/main/kotlin/eu/maiora/plugins/Routing.kt +++ b/src/main/kotlin/eu/maiora/plugins/Routing.kt @@ -6,7 +6,9 @@ package eu.maiora.plugins //import eu.maiora.routes.logScriptRouting import eu.maiora.model.AccountsRepositoryImpl import eu.maiora.model.ParametriRepositoryImpl +import eu.maiora.model.TessereRepositoryImpl import eu.maiora.routes.auth +import eu.maiora.routes.tessere import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* @@ -19,5 +21,6 @@ fun Application.configureRouting(dbUrl : String, username : String, password : S } auth(AccountsRepositoryImpl()) + tessere(TessereRepositoryImpl()) } } diff --git a/src/main/kotlin/eu/maiora/routes/Tessere.kt b/src/main/kotlin/eu/maiora/routes/Tessere.kt index afccbb0..328ee63 100644 --- a/src/main/kotlin/eu/maiora/routes/Tessere.kt +++ b/src/main/kotlin/eu/maiora/routes/Tessere.kt @@ -1,48 +1,35 @@ package eu.maiora.routes -import eu.maiora.model.ParametriRepositoryImpl import eu.maiora.model.TessereRepositoryImpl -import io.jsonwebtoken.Jwts -import io.jsonwebtoken.SignatureAlgorithm -import io.jsonwebtoken.security.Keys -import io.ktor.client.statement.* import io.ktor.http.* import io.ktor.server.application.* -import io.ktor.server.request.* +import io.ktor.server.auth.* import io.ktor.server.response.* import io.ktor.server.routing.* -import kotlinx.serialization.Serializable -import kotlinx.serialization.json.Json -import org.slf4j.LoggerFactory -import java.util.* -fun Route.tessere(tessereRepository: TessereRepositoryImpl, parametriRepository: ParametriRepositoryImpl){ - route("/tessere"){ - get("{cf}"){ - //verifica JWT - val parametro = parametriRepository.parametroByChiave("jwt_secret") - if(parametro != null){ +fun Route.tessere(tessereRepository: TessereRepositoryImpl){ + route("/api/tessere"){ + authenticate("auth-jwt") { + get("{cf}"){ + // Ottieni il codice fiscale dal percorso + val cf = call.parameters["cf"] - } + if (cf == null) { + call.respondText("Codice fiscale non valido", status = HttpStatusCode.BadRequest) + return@get + } + // Cerca la tessera per codice fiscale + val tessera = tessereRepository.tesseraByCodiceFiscale(cf) - // Ottieni il codice fiscale dal percorso - val cf = call.parameters["cf"] - - if (cf == null) { - call.respondText("Codice fiscale non valido", status = HttpStatusCode.BadRequest) - return@get - } - - // Cerca la tessera per codice fiscale - val tessera = tessereRepository.tesseraByCodiceFiscale(cf) - - if (tessera != null) { - call.respond(tessera) - } else { - call.respondText("Tessera non trovata", status = HttpStatusCode.NotFound) + if (tessera != null) { + call.respond(tessera) + } else { + call.respondText("Tessera non trovata", status = HttpStatusCode.NotFound) + } } } + } } \ No newline at end of file