From 1c3fb9a7f30709a9cc738445a4bb4747aed26544 Mon Sep 17 00:00:00 2001 From: luevard <99143550+saucepommefrite@users.noreply.github.com> Date: Tue, 21 May 2024 15:16:13 +0200 Subject: [PATCH] :sparkles: [db] Patch cache problem --- .../data/postgres/PostgresUserDataSource.kt | 14 +++++---- .../main/kotlin/allin/routing/userRouter.kt | 29 ++++++++++--------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/Sources/src/main/kotlin/allin/data/postgres/PostgresUserDataSource.kt b/Sources/src/main/kotlin/allin/data/postgres/PostgresUserDataSource.kt index 932cda8..31a51f8 100644 --- a/Sources/src/main/kotlin/allin/data/postgres/PostgresUserDataSource.kt +++ b/Sources/src/main/kotlin/allin/data/postgres/PostgresUserDataSource.kt @@ -40,15 +40,17 @@ class PostgresUserDataSource(private val database: Database) : UserDataSource { database.users.removeIf { (it.username eq username) or (it.email eq username) } > 0 override fun addCoins(username: String, amount: Int) { - database.users - .find { it.username eq username } - ?.set(UsersEntity.nbCoins.name, UsersEntity.nbCoins + amount) + database.update(UsersEntity) { + set(it.nbCoins, it.nbCoins + amount) + where { it.username eq username } + } } override fun removeCoins(username: String, amount: Int) { - database.users - .find { it.username eq username } - ?.set(UsersEntity.nbCoins.name, UsersEntity.nbCoins - amount) + database.update(UsersEntity) { + set(it.nbCoins, it.nbCoins - amount) + where { it.username eq username } + } } override fun userExists(username: String) = diff --git a/Sources/src/main/kotlin/allin/routing/userRouter.kt b/Sources/src/main/kotlin/allin/routing/userRouter.kt index d37b4e6..ace7d8b 100644 --- a/Sources/src/main/kotlin/allin/routing/userRouter.kt +++ b/Sources/src/main/kotlin/allin/routing/userRouter.kt @@ -56,24 +56,25 @@ fun Application.userRouter() { if (RegexCheckerUser.isEmailInvalid(tempUser.email)) { call.respond(HttpStatusCode.Forbidden, ApiMessage.INVALID_MAIL) } - if (userDataSource.userExists(tempUser.username)) { + else if (userDataSource.userExists(tempUser.username)) { call.respond(HttpStatusCode.Conflict, ApiMessage.USER_ALREADY_EXISTS) } - if(userDataSource.emailExists(tempUser.email)){ + else if (userDataSource.emailExists(tempUser.email)) { call.respond(HttpStatusCode.Conflict, ApiMessage.MAIL_ALREADY_EXISTS) + } else { + val user = User( + id = UUID.randomUUID().toString(), + username = tempUser.username, + email = tempUser.email, + password = tempUser.password, + nbCoins = DEFAULT_COINS, + token = null + ) + CryptManagerUser.passwordCrypt(user) + user.token = tokenManagerUser.generateOrReplaceJWTToken(user) + userDataSource.addUser(user) + call.respond(HttpStatusCode.Created, user) } - val user = User( - id = UUID.randomUUID().toString(), - username = tempUser.username, - email = tempUser.email, - password = tempUser.password, - nbCoins = DEFAULT_COINS, - token = null - ) - CryptManagerUser.passwordCrypt(user) - user.token = tokenManagerUser.generateOrReplaceJWTToken(user) - userDataSource.addUser(user) - call.respond(HttpStatusCode.Created, user) } post("/users/login", {