ktor api
1.0.0
@Serializable
data class User(val id: Int, val name:String, val age: Int , val email:String) get {
if(users.isNotEmpty()){
call.respond(users)
}else{
call.respondText("No hay usuarios",status=HttpStatusCode.OK)
}
} get("{id?}"){
val id = call.parameters["id"] ?: return@get call.respondText("id no encontrada",status = HttpStatusCode.BadRequest)
val user = users.find{it.id == id.toInt()} ?: return@get call.respondText("Usuario con id $id no encontrado", status = HttpStatusCode.NotFound)
call.respond(user)
} post {
val user = call.receive<User>()
users.add(user)
call.respondText("Usuario creado correctamente", status = HttpStatusCode.Created)
} put("{id?}") {
val user = call.receive<User>()
val id = (call.parameters["id"] ?: return@put call.respondText("Id introducida no valida", status = HttpStatusCode.BadRequest))
val userFound = users.find { it.id == id.toInt() }?:return@put call.respondText(
"Usuario no encontrado",
status = HttpStatusCode.NotFound
)
users[users.indexOf(userFound)] = user
call.respondText("Usuario con id $id ha sido cambiado", status = HttpStatusCode.Accepted)
} delete("{id?}"){
val id = call.parameters["id"] ?: return@delete call.respondText("id no encontrada", status = HttpStatusCode.BadRequest)
if(users.removeIf({it.id == id.toInt()})){
call.respondText("Usuario eliminado correctamente", status = HttpStatusCode.Accepted)
}else{
call.respondText("Usuario con id $id no encontrado",status = HttpStatusCode.NotFound)
}
}