Check du mail et clarification des codes retours
continuous-integration/drone/push Build is passing Details

pull/4/head
Lucas Evard 2 years ago
parent 06c66f15ec
commit ed0b6f1687

@ -6,4 +6,9 @@ import kotlinx.serialization.Serializable
data class User(val username: String, val email: String, val password: String, var nbCoins: Int = 1000)
@Serializable
data class CheckUser(val login: String,val password: String)
data class CheckUser(val login: String,val password: String)
fun isEmailValid(email: String): Boolean {
val emailRegex = Regex("^[A-Za-z0-9+_.-]+@(.+)$")
return !emailRegex.matches(email)
}

@ -1,71 +0,0 @@
/*package allin.plugins
import allin.model.User
import io.ktor.http.*
import io.ktor.server.application.*
import io.ktor.server.html.*
import io.ktor.server.request.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import kotlinx.html.body
import kotlinx.html.h1
val users = mutableListOf<User>()
fun Application.configureRouting() {
routing {
get("/") {
call.respondHtml(HttpStatusCode.OK) {
body {
h1 {
+"Bienvenue dans l'API de l'application ALLin!"
}
}
}
}
route("/users") {
get {
call.respondText(users.joinToString("\n"), ContentType.Text.Plain)
}
post {
val newUser = call.receive<User>()
users.add(newUser)
call.respond(HttpStatusCode.Created, newUser)
}
}
route("/users/{username}") {
get {
val username = call.parameters["username"]
val user = users.find { it.username == username }
if (user != null) {
call.respond(user)
} else {
call.respond(HttpStatusCode.NotFound)
}
}
put {
val username = call.parameters["username"]
val userIndex = users.indexOfFirst { it.username == username }
if (userIndex != -1) {
val updatedUser = call.receive<User>()
users[userIndex] = updatedUser
call.respond(updatedUser)
} else {
call.respond(HttpStatusCode.NotFound)
}
}
delete {
val username = call.parameters["username"]
val user = users.find { it.username == username }
if (user != null) {
users.remove(user)
call.respond(HttpStatusCode.NoContent)
} else {
call.respond(HttpStatusCode.NotFound)
}
}
}
}
}
*/

@ -2,6 +2,8 @@ package allin.routing
import allin.model.CheckUser
import allin.model.User
import allin.model.isEmailValid
import io.ktor.client.utils.*
import io.ktor.http.*
import io.ktor.server.application.*
import io.ktor.server.request.*
@ -11,22 +13,20 @@ import io.ktor.server.routing.*
val users = mutableListOf<User>()
fun Application.UserRouter() {
routing {
route("/users") {
get {
call.respond(users)
}
}
routing {
route("/users/register"){
post {
val TempUser = call.receive<User>()
if (isEmailValid(TempUser.email)){
call.respond(HttpStatusCode.Forbidden,"Input a valid mail !")
}
val user = users.find { it.username == TempUser.username || it.email == TempUser.email }
if(user == null) {
users.add(TempUser)
call.respond(HttpStatusCode.Created, TempUser)
}
call.respond(HttpStatusCode.Conflict)
call.respond(HttpStatusCode.Conflict,"Mail or/and username already exist")
}
}
@ -37,41 +37,20 @@ fun Application.UserRouter() {
if (user != null && user.password == checkUser.password) {
call.respond(HttpStatusCode.OK, user)
} else {
call.respond(HttpStatusCode.NotFound)
call.respond(HttpStatusCode.NotFound,"Login and/or password incorrect.")
}
}
}
route("/users/{username}") {
get {
val username = call.parameters["username"]
val user = users.find { it.username == username }
if (user != null) {
call.respond(user)
} else {
call.respond(HttpStatusCode.NotFound)
}
}
put {
val username = call.parameters["username"]
val userIndex = users.indexOfFirst { it.username == username }
if (userIndex != -1) {
val updatedUser = call.receive<User>()
users[userIndex] = updatedUser
call.respond(updatedUser)
} else {
call.respond(HttpStatusCode.NotFound)
}
}
delete {
val username = call.parameters["username"]
val user = users.find { it.username == username }
if (user != null) {
route("/users/delete") {
post {
val checkUser = call.receive<CheckUser>()
val user = users.find { it.username == checkUser.login || it.email == checkUser.login }
if (user != null && user.password == checkUser.password) {
users.remove(user)
call.respond(HttpStatusCode.NoContent)
call.respond(HttpStatusCode.Accepted, user)
} else {
call.respond(HttpStatusCode.NotFound)
call.respond(HttpStatusCode.NotFound,"Login and/or password incorrect.")
}
}
}

Loading…
Cancel
Save