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) data class User(val username: String, val email: String, val password: String, var nbCoins: Int = 1000)
@Serializable @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.CheckUser
import allin.model.User import allin.model.User
import allin.model.isEmailValid
import io.ktor.client.utils.*
import io.ktor.http.* import io.ktor.http.*
import io.ktor.server.application.* import io.ktor.server.application.*
import io.ktor.server.request.* import io.ktor.server.request.*
@ -11,22 +13,20 @@ import io.ktor.server.routing.*
val users = mutableListOf<User>() val users = mutableListOf<User>()
fun Application.UserRouter() { fun Application.UserRouter() {
routing {
route("/users") {
get {
call.respond(users)
}
}
routing {
route("/users/register"){ route("/users/register"){
post { post {
val TempUser = call.receive<User>() 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 } val user = users.find { it.username == TempUser.username || it.email == TempUser.email }
if(user == null) { if(user == null) {
users.add(TempUser) users.add(TempUser)
call.respond(HttpStatusCode.Created, 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) { if (user != null && user.password == checkUser.password) {
call.respond(HttpStatusCode.OK, user) call.respond(HttpStatusCode.OK, user)
} else { } else {
call.respond(HttpStatusCode.NotFound) call.respond(HttpStatusCode.NotFound,"Login and/or password incorrect.")
} }
} }
} }
route("/users/delete") {
route("/users/{username}") { post {
get { val checkUser = call.receive<CheckUser>()
val username = call.parameters["username"] val user = users.find { it.username == checkUser.login || it.email == checkUser.login }
val user = users.find { it.username == username } if (user != null && user.password == checkUser.password) {
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) users.remove(user)
call.respond(HttpStatusCode.NoContent) call.respond(HttpStatusCode.Accepted, user)
} else { } else {
call.respond(HttpStatusCode.NotFound) call.respond(HttpStatusCode.NotFound,"Login and/or password incorrect.")
} }
} }
} }

Loading…
Cancel
Save